[pgsql-jp: 26094] Re: \i によるインポートで文字列リテラルのエスケープが正常に解釈されない

ISHIDA Akio iakio @ pjam.jpweb.net
2002年 5月 23日 (木) 20:06:07 JST


こんにちは。石田です。

On Thu, May 23, 2002 at 05:46:09PM +0900, chi wrote:
> こんにちは、倉谷と申します。
(略)
> このように INSERT 文が1万行ほど書かれたテキストファイルがあります。
> このファイルを psql 上から \i コマンドによってインポートを行うと、
> 次のようなエラーが起きます。
> 
> psql:project-data.sql:8438: invalid command \
> psql:project-data.sql:8440: ERROR:  parser: parse error at or near "2000"
> 
> 該当する 8437行目以下は次のようになっております。
> -----------------------------------------------------------------------
> INSERT INTO project_bill ( project, id, content, amount, unit, unit_price )
> VALUES ( '2000-10-01-01',1,'Page layout at \\850/page(hoge)',10,'ページ',850);
> INSERT INTO project_bill ( project, id, content, amount, unit, unit_price )
> VALUES ( '2000-10-01-01',2,'Page layout at \\800/page(foo)',200,'ページ',800);
> -----------------------------------------------------------------------
> 
> どうも、文字列リテラル中の \\ が円マークとして解釈されていないようなのですが、
> どうしてなのでしょうかね。PostgreSQL の仕様どおりの書き方をしているはずなのですが。。。

本当に \\ マークのところが問題なのかという気もするので、
上記の 4 行だけのテキストを \i してみる、とか
それでエラーなら、フィールドを 1 つずつ書き換えてみる、とかして
絞りこんでみるのもよいかもしれません。

-- 
ISHIDA Akio




pgsql-jp メーリングリストの案内