こんなエラーがでた
Warning: oci_execute() [function.oci-execute]: ORA-01861: リテラルが書式文字列と一致しません in ~~~
INSERT
でもUPDATE
でも全く同じ。
その時のコードは以下(抜粋)
PHP
oci_bind_by_name($stid, ":DATE_COLUM", $value, -1, SQLT_CHR);
SQL
INSERT INTO SCHEMA.TABLE(
DATE_COLUM
)
VALUES(
:DATE_COLUM
)
PHP.net - oci_bind_by_nameを、穴が空くほど見たが
日付型項目のtypeの指定はどうするかがわからず。
おそらくSQLT_CHR
なんだが
SQL
VALUES(
TO_DATE(:DATE_COLUM)
)
↑コレもだめ
SQL
VALUES(
TO_DATE(:DATE_COLUM, 'YYYY-MM-DD hh24:mi:ss')
)
↑コレもだめ
結局これで動いた
PHP側は問題なかったので前述のとおり。
SQL側を以下のように変更したら動いた。
SQL
VALUES(
TO_TIMESTAMP(:DATE_COLUM)
)
参考
ORACLE逆引きノート - [ORAエラー] ORA-01861: リテラルが書式文字列と一致しません
追記(というか反省)
もっと一生懸命エラーメッセージでググれってことですね。