[PHP-users 1227] OCIBindByName を使用したスペースのinsert
Sachiko Wada
php-users@php.gr.jp
Fri, 17 Aug 2001 20:39:25 +0900
和田 と申します。
apache 1.3.19
oracle 8.1.5
php 4.0.6
を用いて開発をしています。
OCI の bind 機能を用いて DBにデータを投入しようとしているのですが、
' '(空白) をデータとして渡すと、NULL と解釈されるらしく、
NOT NULL のカラムでは
OCIStmtExecute: ORA-01400:(XXXX)にはNULLは挿入できません。
というエラーが出ます。
bind を用いて ' ' (空白) を設定するには、どうしたらよいのでしょうか?
以下、使用したサンプルコードです。
--------------------------------------
create table test
(
col1 number(3),
col2 varchar2(3) not null
);
--------------------------------------
<?php
$con = OCILogon('xxxx', 'xxxx', 'xxxx');
$sql = "insert into test values(:COL1, :COL2)";
$stmt = OCIParse($con, $sql);
OCIBindByName($stmt, ":COL1", &$col1, 2);
OCIBindByName($stmt, ":COL2", &$col2, 3);
$col1 = 12;
$col2 = ' ';
OCIExecute($stmt);
OCIFreeStatement($stmt);
OCILogoff($con);
?>
よろしくお願いいたします。