My Oracle Support Banner

JDBC 11.2.0.2 から 11.2.0.4 へアップグレード後、ミリ秒の表示形式が異なる (Doc ID 2334514.1)

Last updated on SEPTEMBER 01, 2020

適用範囲:

JDBC - バージョン 11.2.0.4.0 以降
この文書の内容はすべてのプラットフォームに適用されます。

現象


JDBC 11.2.0.2 から 11.2.0.4 の間に、ResultSet の Date型オブジェクトに getString() を行った際のミリ秒ハンドリングが追加されています。
JDBC 接続の TLS を有効化するために JDBC 11.2.0.4 にアップグレードしたところ、タイムスタンプの"ミリ秒"フィールドに追加のゼロが表示されます。以下に例を記載します:

11.2.0.2.x JDBC driver の場合:

$ java -cp .:<PATH>/ojdbc6.jar TS3
output as object =2017-09-23 22:14:25.0
output as string =2017-09-23 22:14:25


11.2.0.4.x JDBC driver の場合:

$ java -cp .:<PATH>/ojdbc6.jar TS3
output as object =2017-09-23 22:14:25.0
output as string =2017-09-23 22:14:25.0


このように ".0" が追記されていることがわかります。


JDBC 11.2.0.2 と 11.2.0.4 で同様の表示とするにはどうすればよいでしょうか。

手順
-----------------------
以下の方法で意図的に再現が可能です:

1. CLASSPATH を JDBC 11.2.0.2 にポイントします。
2. 表を作成します:
create table test_3 (a number, b DATE default sysdate);
insert into test_3 values (1, sysdate);
commit;
3. TS3.java を実行します。
4. 11.2.0.4 でも同様の手順を実行します。

 



原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
現象
原因
解決策
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.