[pgsql-jp: 25113] Re: データを別のテーブルに移行する方法

SKSG it2s-ksg @ asahi-net.or.jp
2002年 3月 6日 (水) 23:26:10 JST


At 22:20 +0900 02.3.6, Jun wrote:
>ERROR:  copy: line 13, pg_atoi: error in "実際の文
>字列": can't parse "実際の文字列"
>
>となります。
>
>見た目では、全く問題なさそうなのに…。仕方なく、
>(1)で問題だった3行と同じデータ(行)を削除すると、
>インポートできました。
>
>なぜ、この3行が、おかしな動きをするのか、皆目検討
>も付かない状態です。何か問題はあるのでしょうか?

その3行を見せていただかない事には何とも言えませんが、
pg_atoi というのは文字列を数値に変換する関数で、
本来0〜9の文字しか入っていないはずの列にそれ以外の文字列を
入れて読み込ませようとすると、数値に変換できずにエラーが起きます。

なぜ数字であるべき列にそれ以外の文字が入っているとみなされるの
かは何を読ませているかを見てみないと
わかりませんが、例えば日本語対応していないPostgreSQL で、
その3行の途中にタブと同じコードを含む2バイト文字があったりすると、
その2バイト文字を1バイト+タブ区切りとみなして列がずれているとか
あるかもしれません。

環境を明記するようにしましょう。(PostgreSQL のバージョン、
OS のバージョンなど)
あと、どんなSQL 文を書いて、どんなデータを入れるとエラーが
起きるかを具体的に書いていただけるとテストしやすいです。逆に、
上のような書き方だと、どんなSQL 文を書いて、どんなデータを入れ
ると再現できるかが手探り状態になるので放置される可能性が
高いです。

--
-- 
Shoichi Kosuge



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