1. ホーム
  2. java

[解決済み] ojdbc14.jar vs. ojdbc6.jar

2022-02-08 19:48:36

質問

以下のような違いがあることに気づきましたが、どこにも記載がありませんでした。 他の人が同じことに気づいたか、同じことを証明するドキュメントを見つけられるかどうか、疑問に思っています。

Env:-

Oracle 11g, JDK 1.6, iBatis, PL/SQL

シナリオ:-)

ojdbc14.jar : pl/sql が型の変数を返す場合。 DATE で、それをjava.sql.Date変数に入れれば、すべてうまくいくのです。例

Date annualDate = (Date) map.get("exam_date");

ojdbc6.jar : pl/sql が型の変数を返した場合 DATE それをjava.sql.Date変数に格納しようとすると、例外が発生します。

java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.sql.Date

解決方法は?

実は ojdbc14.jar は、ドライバの実際のバージョンについて何も語っていません( JDBCドライバダウンロード ただし、Oracle 11gより前のものであることを除きます。このような場合、正確なバージョンを提供する必要があります。

いずれにせよ、以下のサイトで説明があると思います。 DATEとTIMESTAMPはどうなっているのか? 要するに、9.2ドライバで動作を変更し、11.1ドライバで再度変更したのです。

これは、あなたが経験している違いを説明するかもしれません(そして、私は最新バージョン、すなわち11.2ドライバを使用することをお勧めします)。