| CHAR型カラムのBINDをしようとすると、「ORA-01480: STRバインド値に終了のNULLがありません」となる |
|
以下の原因が考えられます。
- OCIBindByNameの第4パラメータでカラムサイズと同じ長さを指定している
|
|
以下の修正を行い、再度動作を確認してみてください。
- CHAR型の場合、終端に\0が必要になります。このため、カラムサイズと同じ長さの文字列を扱う場合には、OCIBindByNameの第4パラメータで(カラムサイズ+1)したbyte数を指定する必要があります。しかし、毎回計算するのは面倒ですので、-1を指定します。こうすれば、OCIBindByNameが(変数のサイズ+1)という風に解釈します。
|
●PHPスクリプト
<?php
:
OCIBindByName($sql, ":DEPT_NM", &$dept_nm, -1);
:
?>
|
|