[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 メーリングリストの案内