とある検索データ作成中です。
perlのDBD利用での、postgresデータベースのintegerへのNULL値のinsertエラーですが、以前は、
====
例)
dummy表:
no integer
name character varying
level intger
====
$insert = “insert into dummy (no,name,level) values (?,?,?)”;
$sth_insert = $dbh->prepare($insert);
$data = “null”; #とか、$data = “”でもいけた時もあった。
$sth_insert->bind_param(1,”TEST”,$data);
$sts = $sth_insert->execute();
で、bind_paramの方で、NULL判断してくれてintgerにNULL値が入ってくれてたのにこれだとエラーする。
当然、$data = “”ではだめで、結局 $data = undef;
として、変数そのものをundef(未定義値)にしてOKとなった。
*自分が使ってるphpPgAdminもデータ挿入で、intger項目未入力だと””エラーとなる。
いつからこんなことに。PostgreSQL 8.?以降から。旧システムからの移行するとき注意が必要・・