[pgsql-jp: 30124] Re: PostgreSQLのバージョンアップに伴う注意点

Iso, Toshitaka toshitaka.iso @ hp.com
2003年 6月 3日 (火) 20:12:07 JST


杉田さん。あさかわさん。

ごへんとうありがとうございます。

> 常日頃確認しなければなりません。

> 1) ソースファイル中の HISTORY
これが一番しっかり出ていそうですね。あとはSRAさんのHPを
もう少ししっかり読んでみます。。

> 7.2系列(それ以前もだと思う)は
> 数値型フィールドに対して、NULL文字列の代入が可能ですが
> 7.3系列は
> 数値型フィールドへの、NULL文字列の代入がエラーになります。
> (NULLの代入はできます)
このNULL文字列って何なのでしょうか。。
7.2.1と7.3.2の環境で試したところ同じ結果だったもので。。
以下のようなテーブルを作って試して見ました。


【7.2.1の環境】
HOGE721=# \d null_test
          Table "null_test"
  Column  |     Type      | Modifiers
----------+---------------+-----------
 clm_char | character(5)  |
 clm_num  | numeric(10,0) |


NULLっていう文字を投入
HOGE721=# INSERT INTO null_test(clm_char, clm_num) VALUES(NULL,NULL);
INSERT 1118135 1

''で投入
HOGE721=# INSERT INTO null_test(clm_char, clm_num) VALUES('','');
ERROR:  Bad numeric input format ''

' 'スペース一つを投入
HOGE721=# INSERT INTO null_test(clm_char, clm_num) VALUES('',' ');
ERROR:  Bad numeric input format ' '


【7.3.2の環境】
HOGE732=# \d null_test
       Table "public.null_test"
  Column  |     Type      | Modifiers
----------+---------------+-----------
 clm_char | character(5)  |
 clm_num  | numeric(10,0) |

NULLっていう文字を投入
HOGE732=# INSERT INTO null_test(clm_char, clm_num) VALUES(NULL,NULL);
INSERT 17050 1

''で投入
HOGE732=# INSERT INTO null_test(clm_char, clm_num) VALUES('','');
ERROR:  Bad numeric input format ''

' 'スペース一つを投入
HOGE732=# INSERT INTO null_test(clm_char, clm_num) VALUES('',' ');
ERROR:  Bad numeric input format ' '



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