開発Blog

最近のトラブル事例から - Oracle11でDATE型が正しく表示できない –

投稿日:2010-05-06 更新日:

毎年、4月になると、年度末で開発を終えたシステムが運用を開始して、さまざまなお問い合わせがくる季節で、今年も、例年と同じく、さまざまなご相談を弊社サポートサイトを中心に対応させていただきました。そこで、いくつかご紹介します。

■トラブル事象:
Oracle11.1を利用していて、ViewCreaterでDATE型のデータを表示すると正しく表示できない。

本件は、以下の原因で発生した問題です。

Oracle Database10gまでは、JDBCドライバがoracle.sql.DATEをjava.sql.Dateにマッピングしていましたが、Oracle Database 11.1では、新しいフラグmapDateToTimestampが導入され、デフォルトで、JDBCドライバがoracle.sql.DATEをjava.sql.Timestampにマッピングするようになった結果、DBからデータを取得した後、文字列型として値を返却しているため発生した問題です。

「参考資料」
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/java.111/E05720-02/apxref.htm
のOracleオブジェクト型からSQL DATEデータ型へのマッピングを参考してください。

対策1:設定で、Oracle10g以前と同じ動きにする。

.JVMの起動パラメタとして次の値を設定する必要があります。

-Doracle.jdbc.mapDateToTimestamp=false
⇒oracle.sql.DATEをjava.sql.Dateにマッピングして10gと同じ動きをさせる。

対策2:intra-mart側でjava.sql.Timestamp型を日付型として認識させる。

imart.xmlのtimestamp-is-dateの設定値をtrueに変更する。
→java.sql.Timestamp型を文字列ではなく日付型として認識させる。

※Service Platform 設定ガイドの4.1.2.15 intra-mart/platform/service/application/database/data/timestamp-is-dateを参考してください。

※対策2はお客様の運用方針によってアプリケーションに影響を及ぼす可能性があるため、対策1の方法を推奨します。

既存のシステムでは、起きないトラブルですが、今後の新規導入時やVerUp時などで、以外とはまりやすい点だと思いますので、ご注意ください。

-開発Blog
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

「高松商店」のデジタル化事例のご紹介

こんにちは。デジタルビジネス推進室の高松です。 今回は、高松商店のちょっとしたデジタル化についてご紹介させて頂きます。 (高松商店をご存知ない方は、こちらの記事をご覧ください!) 高松商店の近況 前回 …

no image

Formaボタンアイテムのクリック時に任意の処理を追加するには

今回のブログ記事では、ボタンアイテムのクリック時に呼び出されるアイテム固有の処理(データの登録・画面遷移など)の前に、入力値の加工など独自の業務処理をスクリプトとして実行する方法を紹介します。 &nb …

no image

intra-martベースモジュール verr4.X パラメータチューニングガイド

  ※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。   intr …

no image

社員が運営するコーヒーサービス

こんにちは、開発本部の久我と申します。 高松さんからのパスを受けて、今回は私が普段会社でやっている(というより、やらせていただいている)ことを少しだけご紹介してみたいと思います。 とは言っても、何か特 …

no image

intra-mart製品の外字対応方針について

<intra-mart製品の外字対応方針について> 以前より問い合わせの多いintra-mart製品の外字対応方針について資料をまとめましたので参考にしてください。 (1)BM/FW Ver.5 Fo …