[Seasar-user:12558] Re: [S2Dao]Oracle Date型のupdateでエラーとなる
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2008年 1月 18日 (金) 20:34:35 JST
中村(taedium)です。
> updateは、S2Daoで用意されるものを使っています。
> Oracle カラム定義で以下のようになっています。
> IMPORT_DT DATE
>
> このupdateが失敗してしまいます。ログをコピーしてSQLとして
> 実行させると
> UPDATE SEIBANTABLE_K_T SET chuban = '07-7M66778',
> SEQ_NO = 9845, IMPORT_DT = '2007-12-20 10.03.08',
> *
> ERROR at line 1:
> ORA-01861: リテラルが書式文字列と一致しません
> となります。
失敗したときのスタックトレースに何か情報がでていませんか?
Seasar2がログ出力するSQLはRDBMSによっては
必ずしもそのままでは実行できません。
本来はPreparedStatementのバインド変数であるところに、
対応する値をわかりやすいようにフォーマットして
出力しているだけだからです。
Stringやintなどは間違いようがないのですが、
Date、Time、Timestampなどはフォーマットが絡むので
正常なUPDATE文が実行されても
ログのSQLは正しくないことがあると思ってください。
--
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内