- PR -

Postgres の COPY コマンドでの ESCAPE 指定について

1
投稿者投稿内容
New LKH
会議室デビュー日: 2007/02/02
投稿数: 13
投稿日時: 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 ]
New LKH
会議室デビュー日: 2007/02/02
投稿数: 13
投稿日時: 2007-02-02 17:03
引用:

New LKHの書き込み (2007-02-02 16:09) より:
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.



このヒント通り E を付ければ良いのでした。
お騒がせいたしました。
1

スキルアップ/キャリアアップ(JOB@IT)