[Seasar-user:12557] [S2Dao]Oracle Date型のupdateでエラーとなる

小山 健二 [E-MAIL ADDRESS DELETED]
2008年 1月 18日 (金) 19:57:50 JST


小山です
いつもお世話になっています。

アドバイス頂けないでしょうか?
どのあたりに問題があるのかわからず、困っております。

以下、長文ですみません。

S2Daoのupdateメソッドと呼ぶと、以下のログが出力されます
 UPDATE SEIBANTABLE_K_T SET chuban = '07-7M66778', 
 SEQ_NO = 9845, IMPORT_DT = '2007-12-20 10.03.08'
  中略
 WHERE seiban = '07-7M66778  EF 0001' AND version_no = 0

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: リテラルが書式文字列と一致しません
となります。
''でくくった場合、文字列(String)となる思います。
同じテーブルに対してINSERTは、成功します。
 INSERT INTO SEIBANTABLE_K_T (chuban, SEQ_NO, IMPORT_DT, 中略 )
 VALUES ('07-7M78407', 9790, '2007-12-19 05.30.02', 中略 )
Entityクラスでは、
 private Date importDt;
としています。
この格納するデータ自体は、別のテーブルの同名IMPORT_DT(DATE)から、
selectAll()でとってきたもので、フォーマット変換などの加工はして
いません。
また、エラーがでるようになる前と、その後でソースは変更しないのに、
何故か?エラーが出はじめました。

Oracleのパラメータは以下のようになっています。
NLS_DATE_FORMAT
RR-MM-DD

NLS_DATE_LANGUAGE
JAPANESE

NLS_TIME_FORMAT
HH24:MI:SSXFF

NLS_TIMESTAMP_FORMAT
RR-MM-DD HH24:MI:SSXFF

-- 
(^_^)試して見る事に失敗はない。明日は今日と違う自分になる。
小山健二 (Kenji Koyama) 
[E-MAIL ADDRESS DELETED]


Seasar-user メーリングリストの案内