[pgsql-jp: 32095] Re: COPYコマンドによる timestamp 型データのインポート

Shigehiro Honda fwif0083 @ mb.infoweb.ne.jp
2004年 1月 23日 (金) 12:32:07 JST


本田です。

From: 西尾大助 <d-nishio @ ta2.so-net.ne.jp>
Subject: [pgsql-jp: 32094] Re: COPYコマンドによる timestamp 型データのインポート
Date: Fri, 23 Jan 2004 09:29:43 +0900

> 意味を理解せず、本にあるとおりにWITH NULL AS '\null'としてしまいましたが、
> timestamp型と定義されているフィールドにnull stringとして\nullを入れようとした
> ことがエラーの原因だったのでしょうか。
timestamp型のカラムに空文字列('')を挿入しようとしたのですね。(SQLのNULLを
挿入しようとしたのではなく。)
(SQLに関するFAQの類だと思いますし、ご自分で追いかけるそうですのでこれだけにし
ます。)

> 正直、未だに他人に説明できるほどしっかり原因が理解出来ていないのですが、
> COPYコマンドのnull string の指定が不適切であったために、本田さんが
> おっしゃるようにテーブルのフィールド定義にそぐわないデータを入れようと
> していた、というところでしょうか。
> 
> 本田さんの実験でもそうでしたが、timestamp型に''を入れようとして失敗しました。
> にもかかわらずnull string として''を指定したらうまくいった、
> というのも解せないところです。
> 
> 「実践 PostgreSQL」(O'REILLY)によるとnullはデータ型によらず全ての
> 列で使用可能とあったので'\null'でも良さそうに思えるのですが、
> 「nullと''では何が違うのか」というのはおそらくFAQだと思いますので自分で
> 追いかけてみます。
COPYコマンドのnull stringオプションの意味を誤解されているのではないかと
思います。「nullと''では何が違うのか」を理解した後、
  http://www.postgresql.jp/document/pg734doc/reference/sql-copy.html
のnull stringの項目を参照してみて下さい。




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