- - PR -
Postgres の COPY コマンドでの ESCAPE 指定について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-02 16:09
x86_64 GNU/Linux (kernel 2.6.10? GCC 3.4.3)上の
Postgres 8.2.1 の psql にて CSV ファイルをテーブルにロードしようとしています。 CSV 内容は , 区切りで、文字列は " で囲まれており " のエスケープは \ です。 psql で copy コマンドにて ESCAPE '\\' を指定しようとすると ' がエスケープされるのか下記のように 引用符が続いているように判断されます。 postgres=# copy weather from '/home/user/weathr.txt' csv escape '\\'; postgres'# (プロンプトが '# に変わっています) ESCAPE '\\\' とか ESCAPE '\x5C' ですと、そんなエスケープは指定できないとの 警告となってしまいます。どのようにすれば正しくロード出来るのでしょうか? アドバイスをお願いいたします。 postgres=# copy weather from '/home/user/weathr.txt' csv escape '\\\'; WARNING: nonstandard use of \\ in a string literal LINE 1: copy weather from '/home/user/weathr.txt' csv escape '\\\'; ^ HINT: Use the escape string syntax for backslashes, e.g., E'\\\'. postgres=# copy weather from '/home/user/weathr.txt' csv escape '\x5C'; WARNING: nonstandard use of escape in a string literal LINE 1: copy weather from '/home/user/weathr.txt' csv escape '\x5C'; ^ HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. -- 投稿時すると、シングルクォート中の \\ が \ に変換されるようですので 見た目と同じになるように \\\ とかに編集し直しました。 [ メッセージ編集済み 編集者: NLKH 編集日時 2007-02-02 16:12 ] [ メッセージ編集済み 編集者: NLKH 編集日時 2007-02-02 16:14 ] | ||||
|
投稿日時: 2007-02-02 17:03
このヒント通り E を付ければ良いのでした。 お騒がせいたしました。 |
1