web-dev-qa-db-ja.com

Oracle11gおよびjdk1.5でojdbc14.jarを使用できますか

すでに尋ねられたこの質問にはさまざまなフレーバーがあると思いますが、リリースに非常に近く、コミュニティで検証したかったので、これをもう一度確認したいと思いました

Oracle10gとJava 1.5をojdbc14.jarでかなり長い間使用しています。ojbc14.jarがJava 1.4に対応していることは知っていますが、ありがたいことに1.5バージョンでこれを使用している間は問題は発生しませんでした。ojbc5に移行しないもう1つの理由は、インストールされているOracle10gにojdbc5.jarがまったく表示されなかったためです。

DBを11gにアップグレードしましたが、ojdbc14.jarが表示されませんでした。これは、ojdbc5.jarに移動する必要があることを意味しますか?

私たちは喜んで変更を加えます。しかし、切り替えを行った人は、JDBCドライバーをojdbc14.jarからojdbc5.jarに変更したときに問題が発生したかどうかを確認できますか?

これに関連して、誰かがこのjarファイルのdmsフレーバーとその使用方法についてもう少し詳しく説明できればよいでしょう。

12
Fazal

ojbc14はOracle11gで問題なく動作するはずです。 ojbc14とそれ以降のバージョンの主な違いは、新しいバージョンがJDBC APIの新しいバージョンをサポートしていることと、新しいバージョンのOracleの新機能をサポートしていることです。

アプリケーションがojbc14にそのまま対応している場合、システムを最新の状態に保つために、新しいリビジョンが発生したときにそれを追跡することを常にお勧めするという事実を除いて、ドライバーをアップグレードする理由はほとんどありません。

13
skaffman

以下は Oracleからの提案

11.1ドライバーは、データベースから読み取るときに、デフォルトでSQLDATEをタイムスタンプに変換します。これは常に正しいことであり、9iでの変更は間違いでした。 11.1ドライバーは正しい動作に戻りました。アプリケーションでV8Compatibleを設定していなくても、ほとんどの場合、動作に違いは見られません。 getObjectを使用してDATE列を読み取ると、違いに気付く場合があります。結果は、日付ではなくタイムスタンプになります。 TimestampはDateのサブクラスであるため、これは通常問題にはなりません。違いに気付く可能性があるのは、日付から日付への変換に依存して時間コンポーネントを切り捨てた場合、または値に対してtoStringを実行した場合です。それ以外の場合、変更は透過的である必要があります。

何らかの理由でアプリがこの変更に非常に敏感で、単に9i-10gの動作が必要な場合は、設定できる接続プロパティがあります。 mapDateToTimestampをfalseに設定すると、ドライバーはデフォルトの9i-10gの動作に戻り、DATEをDateにマップします。

2
Raja