[Seasar-user:3498] [S2Test] 日付型のセル

松山 大樹 [E-MAIL ADDRESS DELETED]
2006年 4月 13日 (木) 13:26:55 JST


 松山です。

 Oracle データベース上に、

create table hoge (
  userID varchar2(100) not null,
  enabledDate date not null
);
Alter table hogeadd Primary Key (userID);

 というテーブルがあるとします。

 このテーブルを使用するクラスをテストするとき、S2TestCase.readXlsAllReplaceDb()
を使用して、テストデータを読み込ませているのですが、enabledDate に該当するセルが
日付型だと、

org.seasar.framework.exception.ParseRuntimeException: [ESSR0050]解析に失敗しました。理由はjava.text.ParseException: Unparseable date: "2006-03-31 00:00:00.0"
	at org.seasar.framework.util.DateConversionUtil.toDate(DateConversionUtil.java:59)
(以下、省略)

というエラーになります。
先頭に、'(アポストロフィー)を付けて、文字型にすると正常に動作します。
また、enabledDate の型を、date ではなく、timestamp にしても正常に動作します。

 Oracle のdate は、秒までの精度しか持っていないところに、ミリ秒までの値をセット
しようとして失敗しているのではないか、と思うのですが。

 S2Container は、2.3.7、Oracle は、10g です。

 今のところ、全部、'2006/3/31 のように、先頭にアポストロフィーを付けて実行していますが、
うっかり大量に入力してしまったものを修正するのは面倒なので、何とかならないでしょうか?


-- 
::: 株式会社ワウワウ・コミュニケーションズ http://www.wowcom.co.jp/
:::   ITシステム・インテグレートDiv.
:::  Web・ソリューション&システム開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]





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