ヘッダーをスキップ
Oracle® Databaseプラットフォーム共通日本語README
12cリリース1 (12.1)
B71333-12
  目次
目次

前
 
次
 
 

Oracle JDBC Drivers README

原典情報: <ORACLE_HOME>/relnotes/readmes/README_jdbc.txt


目次

このリリースの新機能

下位互換性の問題を引き起こす可能性のある意図的な変更

ドライバのバージョン

このリリースの内容

NLS拡張機能のjarファイル (クライアント側のみ)

インストール

環境の設定

JDBCドライバ使用時に役立つヒント

Javaストアド・プロシージャ

既知の不具合

このリリースの既知の問題/制限事項


このリリースの新機能

Transaction Guard

Oracle Database 12cリリース1では、Transaction Guardが導入されています。 これは、計画停止/計画外停止時および重複発行時の最大1回の実行のための一般的なインフラストラクチャを提供する機能です。

Java用のアプリケーション・コンティニュイティ

基盤となるソフトウェア、ハードウェア、通信および記憶域レイヤーの停止が、アプリケーションの実行が失敗する原因となり、その結果、アプリケーションの停止がエンド・ユーザーに公開されることがあります。最悪の場合、ログオン・ストームを処理するために、中間層サーバーの再起動が必要になることもあります。このような問題に対処するために、Oracle Database 12cリリース1では、データベースの停止をアプリケーションに対してマスキングし、エンド・ユーザーにこのような停止が公開されないようにする、アプリケーション・コンティニュイティ機能が導入されました。

アプリケーション・コンティニュイティは、計画または計画外停止後にアプリケーションの観点から作業のリカバリを可能にする、アプリケーション非依存の汎用ソリューションを提供します。停止はシステム、通信またはハードウェアに関連付けることができ、その後、修復、構成変更またはパッチ適用が行われます。

SQL変換サポート

SQL前処理またはSQL変換メカニズムにより、クライアント・プログラムから発行されたSQL文のテキストを、Oracle Database SQLプロセッサに発行する前に変換できます。SQL変換は、プログラム、参照またはこれらの組合せによって実装できます。

SQL変換機能は、ODBCやJDBCなどのオープンAPIを使用して記述されたアプリケーション、および意味的に同値のOracle構文に変換可能なSQL文を使用するすべてのアプリケーションに適しています。

データベース常駐接続プーリング

データベース常駐接続プール(DRCP)は、多くのクライアントで共有されているサーバー内の接続プールです。DRCPは、アクティブな接続の数がオープン接続数よりもかなり少ない接続プールで使用する必要があります。DRCPプールからの接続を共有できる接続プールのインスタンス数が増加すると、DRCPを使用することによるメリットが高まります。DRCPによりデータベース・サーバーのスケーラビリティが高められ、中間層接続プーリングに関連するリソースの消耗に関する問題が解決されます。

JDBC 4.1標準

Oracle Database 12cリリース1 JDBCドライバは、JDK 7を介してJDBC 4.1標準をサポートします。

アドバンスト・セキュリティ機能の強化

Oracle Database 12cリリース1のアドバンスト・セキュリティ・オプションには、チェックサム・アルゴリズムとしてのSHA2に対するサポートが含まれます。

メモリー・フットプリントの削減

Oracle Database 12cリリース1では、JDBCドライバで使用される内部バッファ・メカニズムが大幅に変更されています。12R1ドライバのメモリー・フットプリントはほとんど場合、11または10ドライバより小さくなっており、非常に小さいフットプリントの場合のみ大きくなっています。

下位互換性の問題を引き起こす可能性のある意図的な変更

JDBC仕様に従って、AutoCommitがオンの場合に、commit()またはrollback()にコールすると例外がスローされます。12R1より前は、ドライバは例外をスローしませんでしたが、これは不具合でした(詳細はOracle Bug#11891661を参照してください)。この不具合は12R1で修正されたため、AutoCommitモードがオンの場合、commit()またはrollback()にコールすると、ドライバは例外をスローします。この変更は意図的であり、Oracle JDBCドライバが仕様に準拠するための変更です。

同様に、JDBC仕様では、ローカル・トランザクションの最中にsetAutoCommitがコールされると、トランザクションがコミットされると記述されています。12R1以降、ローカル・トランザクションが検出された場合、setAutoCommitがコールされると、JDBCドライバは暗黙的コミットを発行します。

ドライバのバージョン

12R1リリースには、次のドライバ・バージョンがあります。

JDBC Thinドライバ12R1

クライアント・アプリケーション、中間層サーバーおよびアプレット用の100% Javaクライアント側JDBCドライバ。

JDBC OCIドライバ12R1

OCI 12R1がインストールされているマシン用のクライアント側JDBCドライバ。

JDBC Thinサーバー側ドライバ12R1

リモートOracleデータベースにアクセスするデータベース内のJavaプログラム用のJDBCドライバ

JDBCサーバー側内部ドライバ12R1

Javaストアド・プロシージャ用のサーバー側JDBCドライバ。このライバはJDBC Kprbドライバと呼ばれていました。

詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』を参照してください。

このリリースの内容

全プラットフォーム

[ORACLE_HOME]/jdbc/libには、次のファイルが含まれています。

ojdbc7.jar

JDK 7用のクラス。OracleのObject型およびCollection型によるNLSサポート用のクラスを除く、JDBCドライバ・クラスが含まれています。

ojdbc7_g.jar

ojdbc7.jarと同じですが、javac -gを使用してコンパイルされ、トレース・コードが含まれています。

ojdbc7dms.jar

ojdbc7.jarと同じですが、DMSおよび制限付きjava.util.loggingコールをサポートするためのインスツルメンテーションが含まれています。

ojdbc6.jar

JDK 1.6用のクラス。OracleのObject型およびCollection型によるNLSサポート用のクラスを除く、JDBCドライバ・クラスが含まれています。

ojdbc6_g.jar

ojdbc7.jarと同じですが、javac -gを使用してコンパイルされ、トレース・コードが含まれています。

ojdbc6dms.jar

ojdbc6.jarと同じですが、DMSおよび制限付きjava.util.loggingコールをサポートするためのインスツルメンテーションが含まれています。

ojdbc6dms_g.jar

ojdbc6_g.jarと同じですが、DMSをサポートするためのインスツルメンテーションが含まれています。


注意:

jarファイルのdmsバージョンは標準のjarファイルと同じですが、Oracle Dynamic Monitoring Serviceをサポートするための追加コードが含まれています。含まれるトレース・コードの量は制限されています。dms.jarがCLASSPATHにある場合のみ使用できます。dms.jarは、Oracle Application Serverのリリースに含まれて提供されています。そのため、jarファイルのdmsバージョンを使用できるのは、Oracle Application Server環境のみです。


[ORACLE_HOME]/jdbc/doc/javadoc.tarには、Oracle JDBCのパブリック・クラスのパブリックAPIに関するJDBC Javadocが含まれています。このJavaDocは、Oracle JDBC API拡張機能の主要な参照ドキュメントです。『Oracle Database JDBC開発者ガイドおよびリファレンス』には、Oracleの拡張機能に関する高度な説明が記載されています詳細はこのJavaDocに記載されています。JavaDocは、開発ガイドと同様に正式なドキュメントです

[ORACLE_HOME]/jdbc/demo/demo.tarには、JDBCのサンプル・プログラムが含まれています。

[ORACLE_HOME]/jlib/orai18n.jar

JDK 1.6および7用のNLSクラス。 OracleのObject型とCollection型によるNLSサポート用のクラスが含まれています。このjarファイルにより、古いnls_charset jar/zipファイルが置き換えられます。Oracle 10g R1では、このファイルは[ORACLE_HOME]/jdbc/libにも重複して存在しました。この重複したコピーは削除されたため、前述の位置からこのファイルを取得する必要があります。

Windowsプラットフォームの場合

[ORACLE_HOME]\binディレクトリには、JDBC OCIドライバ用ライブラリocijdbc12.dllおよびheteroxa12.dllがあります。

Windows以外のプラットフォームの場合

[ORACLE_HOME]/libディレクトリには、JDBC OCIドライバ用の共有ライブラリlibocijdbc12.so、libocijdbc12_g.so、libheteroxa11.soおよびlibheteroxa12_g.soがあります。

NLS拡張機能のjarファイル(クライアント側のみ)

サーバー側内部JDBCドライバは完全なNLSサポートを提供します。NLS拡張機能のjarファイルは不要です。この項の説明は、Oracle JDBC ThinドライバとOracle JDBC OCIドライバにのみ適用されます。

基本のjarファイル(ojdbc6.jarおよびojdbc7.jar)には、次のように完全なNLSサポートの提供に必要なクラスがすべて含まれています。

OracleのObject型またはCollection型のデータ・メンバーとして取得または挿入されないCHAR/VARCHAR/LONGVARCHAR/CLOB型データ用のOracleキャラクタ・セット。

共通に使用される少数のキャラクタ・セット用のObject型とCollection型のCHAR/VARCHARデータ・メンバーに対するNLSサポート。この種のキャラクタ・セットは、US7ASCII、WE8DEC、WE8ISO8859P1、WE8MSWIN1252およびUTF8です。

Object型またはCollection型のCHAR/VARCHARデータ・メンバーに他のキャラクタ・セットを使用する必要がある場合は、CLASSPATHにNLS拡張機能のjarファイル([ORACLE_HOME]/jlib/orai18n.jar)を含める必要があります。新規のorai18n.jarにより、9i以前のリリースのnls_charset*.*ファイルが置き換えられます。

ファイルorai18n.jarには、文字に関連する重要なファイルが多く含まれています。これらのほとんどのファイルは、グローバリゼーション・サポートのために必要です。アプリケーションで使用するキャラクタ・セット・ファイルのみを抽出するのではなく、次の3つの手順に従うことが最も安全です。

  1. orai18n.jarを一時ディレクトリに解凍します。

  2. アプリケーションで使用しないキャラクタ・セット・ファイルを削除します。地域ファイル、照合順番ファイルまたはマッピング・ファイルは削除しないでください。

  3. 一時ディレクトリで新しいorai18n.jarファイルを作成し、変更したファイルをCLASSPATHに追加します。

詳細は、JDBCの開発者ガイドを参照してください。

また、各国対応のJDBCエラー・メッセージ・ファイルを選択的に含めることもできます。メッセージ・ファイルは、ojdbc6*.jarおよびojdbc7*.jar内のoracle/jdbc/driver/Messages_*.propertiesファイルに含まれています。

インストール

CLASSPATHには、Oracle JDBC Driversの複数バージョンを指定しないでください。Oracle Installerを実行すると、Oracle JDBC Driverが[ORACLE_HOME]/jdbcディレクトリにインストールされます。

環境の設定

Windowsプラットフォームの場合

JDK 1.6を使用する場合は[ORACLE_HOME]\jdbc\lib\ojdbc6.jarを、JDK 7を使用する場合は[ORACLE_HOME]\jdbc\lib\ojdbc7.jarをCLASSPATHに追加します。必要な場合は、CLASSPATHに[ORACLE_HOME]\jlib\orai18n.jarを追加します。

JDBC OCIドライバを使用する場合は、PATHに[ORACLE_HOME]\binを追加します。

Solaris/HP Tru64 Unixの場合

JDK 1.6を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc6.jarを、JDK 7を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc7.jarをCLASSPATHに追加します。必要な場合は、CLASSPATHに[ORACLE_HOME]/jlib/orai18n.jarを追加します。

JDBC OCIドライバを使用する場合は、LD_LIBRARY_PATHに[ORACLE_HOME]/jdbc/libを追加します。

HP/UXの場合

JDK 1.6を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc6.jarを、JDK 7を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc7.jarをCLASSPATHに追加します。必要な場合は、CLASSPATHに[ORACLE_HOME]/jlib/orai18n.jarを追加します。

JDBC OCIドライバを使用する場合は、SHLIB_PATHおよびLD_LIBRARY_PATHに[ORACLE_HOME]/jdbc/libを追加します。

AIXの場合

JDK 1.6を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc6.jarを、JDK 7を使用する場合は[ORACLE_HOME]/jdbc/lib/ojdbc7.jarをCLASSPATHに追加します。必要な場合は、CLASSPATHに[ORACLE_HOME]/jlib/orai18n.jarを追加します。

JDBC OCIドライバを使用する場合は、LIBPATHおよびLD_LIBRARY_PATHに[ORACLE_HOME]/jdbc/libを追加します。

JDBCドライバ使用時に役立つヒント

Oracle JDBC Driversの使用方法の詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』を参照してください。この項では、ヒントのみを説明します。これらのヒントは網羅的ではありません。

あくまでもJDBCプログラムで必要な事項です。

  1. JDBCを使用するプログラムに必要なJDBCクラスをインポートします。次に例を示します。

     import java.sql.*;
     import java.math.*; // if needed
    

    OracleDataSourceを使用するには、次のように入力する必要があります。

     import oracle.jdbc.pool.OracleDataSource;
    
  2. OracleDataSourceインスタンスを作成します。

     OracleDataSource ods = new OracleDataSource();
    
  3. デフォルトのプロパティを使用しない場合は、必要なプロパティを設定します。JDBCドライバごとに異なる接続URLを使用する必要があります。

     ods.setUser("my_user");
     ods.setPassword("my_password");
    

    JDBC OCIドライバの場合

    Bequeathed接続を確立するには、URLを次のように設定します。

     ods.setURL("jdbc:oracle:oci:@");
    

    リモート接続を確立するには、URLを次のように設定します。

     ods.setURL("jdbc:oracle:oci:@");
    

    <database>はTNSEntryNameか、またはtnsnames.oraに定義されたSQL*netの名前/値ペアです。

    JDBC Thinドライバまたはサーバー側Thinドライバの場合

     ods.setURL("jdbc:oracle:thin:@");
    

    <database>は、//<host>:<port>/<service_name>形式の文字列、SQL*Netの名前/値ペア、またはTNSEntryNameです。

    サーバー側JDBC内部ドライバの場合

     ods.setURL("jdbc:oracle:kprb:");
    

    後続の「:」が必要であることに注意してください。サーバー側内部ドライバを使用する場合は、常に実行中のデータベースに接続します。また、次のように指定できます。

     Connection conn =
       new oracle.jdbc.OracleDriver().defaultConnection();
    
  4. OracleDataSourceクラスに定義されているgetConnection()メソッドを使用して、データベースへの接続をオープンします。

     Connection conn = ods.getConnection();
    

Javaストアド・プロシージャ

OracleのObjectを使用したコールインとインスタンス・メソッドの例は、次のファイルにあります。

 [ORACLE_HOME]/javavm/demo/demo.zip

このファイルを解凍すると、次のディレクトリに例が抽出されます。

 [ORACLE_HOME]/javavm/demo/examples/jsp

既知の不具合

14641400

JDBC THREAD HANG WHEN CANCELING OCCURS
キャンセルが行われるとJDBCスレッドがハングします

14584969

OUTOFMEMORYEXCEPTION WHEN EXECUTING PLSQL STATEMENT WITH 280+ VARCHAR PARAMETERS
280を超えるVARCHARパラメータでPLSQL文を実行すると、OUTOFMEMORYEXCEPTIONが発生します

14574450

NPE:GETLONG ON THE JDBC RESULTSET WITH INDEX 24 : 2 CUSTOM LONG TEXT FIELD TO FR
索引24:2のカスタム長テキスト・フィールドをFRに設定して、jdbc結果セットでgetlongをコールすると、NullPointerExceptionが発生します

14538214

ADDITIONAL CASES OTHER THAN NAN/INFINITY IN BUG:14222149 ALSO THROW NULLPOINTER
バインド時に、DoubleからNUMBERへのオーバーフロー/アンダーフローを捕捉します。

14496772

JDBC INTERNAL SQL PARSER INCORRECT FOR SQL CONTAINING XXXRETURNINGYYY TEXT
'RETURNING ...INTO' の解析中の問題

14465733

JDBC DRIVER CANNOT CONNECT VIA KERBEROS USING WINDOWS NATIVE CACHE
委任が有効な場合、Windowsのネイティブ・キャッシュが機能しません

14462284

SIMPLEFAN.JAR MAKES WALLET MANDATORY
ウォレット・ファイルまたはウォレット・パスワードが指定されていない場合、simplefanはONSに空の文字列を送信します。ONSでエラーが発生します

14407350

ORACLE 11G JDBC KERBEROS CROSS-REALM FAILURE
クロス・レルム・シナリオでKerberosが機能しません

14354533

PERFORMANCE ISSUE ON ALL_TYPE_ATTRS USING JDBC
ADTのパフォーマンスの問題。

14282782

RULE HINT IN SOME QUERIES ON ALL_SYNONYMS DEGRADES PERFORMANCE
メタデータ問合せのパフォーマンスが向上しました。

14223360

DATA ENCRYPTED WHEN ORACLE.NET.ENCRYPTION_CLIENT SET TO REJECTED
プール・データソースを使用する接続プロパティが無視されました。

14222149

NAN USAGE IN JDBC RESULTS IN NULLPOINTEREXCEPTION
後からNPEが発生するのを防ぐために、ただちにNaNの使用を捕捉します。

14107475

ORA-4043 USING JDBC THICK AND ALL WORKS FINE USING THIN DRIVER WHEN WORKING WITH
OCIドライバの使用中にORA-4043が発生します。CLOBの使用時にThinドライバを使用する際は、正常に機能します。

14021941

JDBC TESTCASE SHOWS HIGH CURSOR VERSION COUNT AND HIGH BIND MISMATCH
JDBCテストケースで、カーソル・バージョン・カウントおよびバインドの不一致が高くなっています。

13877559

NLS: TIMEZONE CONVERSION BY ORACLE.SQL.TIMESTAMP IS WRONG
TIMESTAMP.TimeZoneConvert()の使用時に、時々間違った結果が生成されることがあります

13635601

MISSING TIMEZONES BETWEEN JDBC AND DATABASE
タイムゾーンがありません

13627118

ATLANTIC/JAN-MAYEN MAPPING IN ZONEIDMAP.JAVA DOES NOT MATCH THE DATABASE VALUE
タイムゾーンがありません

13618702

RETRY_COUNT DOES NOT WORK IN JDBC FOR REDIRECTED CONNECTIONS
リダイレクトされた接続の再試行カウントが無視されました

13582368

XA CONNECTION REQUEST IGNORES ORACLE.NET.CONNECT_TIMEOUT
XA接続リクエストがoracle.net.CONNECT_TIMEOUTを無視します

13508485

BUG 13090621 FIX CAUSES A HANG.
Oracle Bug#13090621の修正が、ハングを引き起こします。

13105092

TIMESTAMP TS LITERAL USING 11.2 JDBC THIN OR OCI DOESN'T WORK
2つ以上のJDBCエスケープ・シーケンスのあるSQLで、最初のエスケープ・シーケンスが後にスペースのない文字リテラルで終わる場合({ts '1980-01-01'}など)、2番目のシーケンスは認識されません。リテラルと閉じカッコの間にスペースがないことに注意してください。

13090621

STATEMENT.CANCEL CANCELS ROLLBACK FOLLOWING CANCELLED INSERT WITH ORA-01013
ドライバは、SQL内の二重引用符で囲んだ識別子を持つパラメータを識別しません。

12998506

RETRY_COUNT IS TOTAL NUMBER OF CONNECTION ATTEMPTS IN JDBC THIN
JDBC THIN接続時のretry_countが、十分な回数再試行していません。

12808945

JDBC DEADLOCK IN ORACLETIMEOUTTHREADPERVM AND T4CCONNECTION
OracleTimeoutThreadPerVMおよびT4CConnectionのJDVCデッドロック

1277522

JDBC 11.2.0.2 DB METADATA GETCOLUMNS RETURNS UNEXPECTED VALUES FOR DECIMAL_DIGITS
小数点列および整数列のメタ・データの値が間違っています。

12770050

MULTITHREADED APP INTERMITTENTLY FAILS WITH PKI-02002: UNABLE TO OPEN THE WALLET
PKI-02002で接続エラーが発生しました。ウォレットを開くことができません

12760352

RETRY_COUNT PARAMETER DOES NOT WORK CORRECTLY WITH JDBC THIN
接続時にJDBCがRETRY_COUNTを正しく適用しません。

12760268

JDBC THROWS NULLPOINTEREXCEPTION WITH RETRY_COUNT=0 IN URL
RETRY_COUNT=0の場合、JDBCはNPEをスローします

12744967

JDBC THIN DRIVER 11.2.0.2: THE DATABASE SESSION TIME ZONE IS NOT SUPPORTED
JDBCクライアントにタイムゾーン・サポートがありません。

12744662

GETTING "UNDEFINED ERROR" IF THE OS USER NAME CONTAINS SPECIFIC CHARACTER
特定のマルチバイト文字で接続/ログイン・エラーが発生する可能性があります。

12596686

JDBC THIN APP SENDS SCALE VALUE OF 0 OR 9 FOR BINDS CAUSING MANY CHILD CURSORS
JDBC Thinアプリケーションがバインド用に0または9のスケール値を送信すると、子カーソルが多数生成されます

12582023

JDBC THIN DOES NOT CONNECT WHEN SECURITY BANNER IS SET IN DATBASE
セキュリティ・バナーはTHIN接続の失敗を招くことがあります。

12359128

NULLPOINTEREXCEPTION OCCURS AT ORACLEDRIVER.CONNECT().
oracledriver.connect()でNullPointerExceptionが発生します。

12358506

GET WRONG TIMESTAMP FOR THAI LOCALE USING OJDBC5.JAR
タイのロケールを使用している場合に、タイムスタンプが正しくありません。

11892137

ERROR ORA-22925 WHEN RETRIEVING A CLOB LARGER THAN 2GB
2GBを超えるCLOBのフェッチ中にエラーが発生します

11879436

GETDATE AND GETTIMESTAMP RETURN INCORRECT YEAR WHEN RETRIEVING DATE FROM BC ERA
Java dtae/timeからOracleデータ型に変換してから元に戻すと、にBCの日付が失われます。

11833476

ORACLEBLOBINPUTSTREAM.AVAILABLE() METHOD ALWAYS RETURNS 0
read()に0バイトのバッファが指定されている場合に、available() (rs.getBinaryStream()から取得したclob/blob列で)がclobおよびblobに使用可能な残りのサイズとして0を戻しました。

11672297

ORA-01092 MAPPED TO XAER_RMERR INSTEAD OF XAER_RMFAIL
ORA-01092により、XAER_RMFAILではなくXAER_RMERRにマップされます。

11670695

RESULTSET.GETTIMESTAMP() RETURNS WRONG TIMESTAMP TIMESTAMP WITH LOCAL TIME ZONE
dbとセッションのタイムゾーンが等しい場合、タイムスタンプが正しくない可能性があります。

10385510

JDBC TCPS CONNECTIONS DO NOT FAILOVER USING SCAN LISTENERS
スキャン・リスナーを使用してJDBC TCPS接続がフェイルオーバーしません

10364671

ZERO LENGTH AND NULL ARRAYS NOT WORKING IN JDBC 11.2.0.2
jdbc 11.2.0.2で長さゼロおよびNULL値の配列が機能しません

10337920

JDBC GOT ORA-17090 WHEN USING TYPE_SCROLL_SENSITIVE
SQLにROW_NUMBER() OVER (... ORDER BY ...)が含まれる場合、TYPE_SCROLL_SENSITIVE結果セットでORA-17090が発生します。

10315994

RESULTSET.GETROW() DOES NOT CONFORM TO STANDARDS OF JDBC
結果セット・カーソルが最後の行(next()はfalseを戻す)にクロスオーバーした後は、カーソルがアクティブな行にないため、ResultSet.getRow()は0を戻す必要があります。行カウントを戻しました

10314983

CURSOR IS CLOSED IS THROWN FROM JDBC WHEN REF_CURSOR IS NOT AVAILABLE
PL/SQLプロシージャが条件付きでプロシージャでオープンされたREF_CURSORを戻す場合、カーソルがプロシージャでオープンされていない場合、Thinドライバはカーソルがクローズされているという例外をスローします。この不具合は、例外ではなくNULLを戻すよう動作を変更するためのリクエストです。

10258812

JDBC APP RETURNS INCORRECT COLUMN SIZE USING GETCOLUMNDISPLAYSIZE BETWEEN THIN A
getColumnDisplaySize()からのNUMBERについての不適切な結果です。

10232230

GETOBJECT ON RAW COLUMN NOT INSTANCE OF BYTE[] WHEN FETCHSIZE CHANGES BETWEEN EX
実行間でフェッチサイズが変更される場合、RAW列のgetObject()はbyte[]のインスタンスではありません。

10185052

PREPARESTATEMENT(SQL,GENERATEDCOLS) HANGS IF SUM(LENGTH(COLUMN_NAMES) >= 800
OCI接続でprepareStatement()を実行している場合に、ハングする可能性があります。

10177225

JDBC THIN GOT "IO ERROR: PROTOCOL VIOLATION" WHEN AFTER FETCHING LONG COLUMN
executeUpdate()のかわりにexecte()がコールされ、直後に接続を閉じると、プロトコル違反例外がスローされます。

9979618

DATABASEMETADATA GETCOLUMNS AND GETSCHEMAS MISSES COLUMNS
JDBC 4.0で追加されたDatabaaeMetaData getSchemaおよびgetColumnsの列が追加されます。

9869716

PRINTING STRING VALUE OF TIMESTAMPTZ IS SENSITIVE TO DEFAULT TIMEZONE
TIMESTAMPTZから文字列への変換で、不適切な結果が生成されることがあります。

9787201

WEBLOGIC XA DATASOURCE CONNECTION SSL ERROR
Weblogic XAデータソース接続SSLエラー

9786503

CANNOT USE OS AUTHENTICATION WHEN CUSTOMER USES ORACLEXADATASOURCE
OS認証への接続にOracleXADataSourceを使用できません。

9785135

DST CONVERSION NOT CORRECT USING JDBC 11G TIMESTAMPTZ
不適切なTIMESTAMPTZ値が作成されることがあります。

9660015

SUDDENLY JDBC THIN HANGS BY WAITING GETNEXTPACKET WHEN CALLING STORED PROCEDURE
JDBC Thinでハングします。

9496068

RETRIEVAL OF NVARCHAR COLUMNS FAILS WITH BIGGER TYPE LENGTH THAN MAXIMUM
型の長さが最大よりも大きい場合、nvarchar列の取得に失敗します。

9491385

MEMORY NOT BEING RELEASED WHEN USING REGISTERINDEXTABLEOUTPARAMETER
registerindextableoutparameterの使用時にメモリーが解放されません。

9468517

SLAMD BENCHMARKING TOOL OR 10G JDBC OCI CLIENT, TAF WORKING ERRATICALLY
JDBC OCIおよびOCIが、戻されたTAFフェイルオーバーで同じように動作しません。

9445675

NO MORE DATA TO READ FROM SOCKET WHEN USING END-TO-END METRICS
エンドツーエンドのメトリックを使用している場合、ソケットから読み込むデータはこれ以上ありません。

9394224

INSERTING A XMLTYPE FIELD PREVENT BATCHING AND FORCES SOFT PARSE
バッチに関する問題を修正するか、実行のたびにサーバー側の解析が施行される他のOPAQUE型のXMLTypeでPreparedStatementsの実行を繰り返します。

9387945

UNREGISTERDATABASECHANGENOTIFICATION OFTEN FAILS WHEN CONNECTED TO RAC DATABASE
接続プールからRAC接続に対して行われる場合、DCNの登録解除がしばしば失敗します。

9341742

SETBINARYSTREAM CRASHES SERVER IF AN UNREAD STREAM IS BOUND TO A DML
未読lobストリームがバインドとしてバインドされると、DBサーバーはクラッシュします。

9341542

GETMETADATA().GETINDEXINFO FAILS WITH QUOTED TABLENAME
GETMETADATA().GETINDEXINFO()の引用符で囲んだ表名でORA-942が発生します。

9259830

UNABLE TO DEREGISTER DCN WHEN JVM PROCESS WHICH REGISERTED IT DIES
JVMがクラッシュしたときに、データベース内の登録をクリーンアップするためのAPIが、予想されるとおりに機能しません。

9240210

SILENT (NO ERROR) TRUNCATION READING 4GB BLOB WITH JDBC 11.2.0.1.JDBC 11.1 OK.
4GBを超えるLOBをTHINを介して読み取ると、失敗する可能性があります。

9224501

NEED OPTION TO RELEASE PREPAREDSTATEMENT BIND BUFFERS BETWEEN BATCHES
文が暗黙的キャッシュにある場合またはclearBatch()をコール後に、割り当てられたバッファで、文によって大容量のメモリーが保持されます

9197956

DATA CHANGE NOTIFICATION FAILS WITH JAVA.LANG.ILLEGALARGUMENTEXCEPTION AT JAVA.
DCN通知がJava例外で失敗する可能性があります。

9180882

DBC STATEMENT.EXECUTE DOES NOT HANDLE COMMENTS AS FIRST ELEMENTS FOR INSERT STA
JDBCstatement.executeで、コメントが挿入文の最初の要素として処理されません。

9139227

ERROR CODE CHANGE IN 11G
接続失敗時の間違ったエラー・コード。

9105438

ORA-22275 DURING PS.EXECUTEBATCH WITH STREAMS AND NON-STREAMS
ストリームおよび非ストリームでのps.executebatch中にora-22275が発生します。

9099863

PS.SETBYTES ON BLOB COLUMNS IN BATCH DOES NOT INHERIT VALUE TO FOLLOWING LINES
バッチのblob列のps.setbytesが、後続の行に値を継承しません

9045206

11.2 JDBC DRIVER RETURNS ZERO ROWS WITH REF CURSOR OUT PARAMETER
11.2 jdbcドライバがref cursor outパラメータでゼロ行を戻します

8922272

JDBC CRASHES WHEN PROTOCOL IN NETWORK PACKET MODIFIED AND SERVER RUNS ON LINUX
ログオン時に破損したネットワーク・パケットがある場合、ThinドライバがNullPointerExceptionをスローする可能性があります。

8874882

ORA-22922: NONEXISTENT LOB VALUE WHEN RE-USING LARGE STRING BIND VALUE
ORA-22922: 大きな文字列バインド値の再利用時にLOB値が存在しません

8473620

KPRB DRIVER FAILS IN UPDATEABLE RESULTSET.UPDATEROW () ON AL32UTF8
サーバー側内部ドライバで、マルチバイト・データベースのキャラクタ・セットを使用している場合、結果セットがwhere句にvarchar列のあるPreparedStatementに対するものである場合、ResultSet.updateRowは失敗します。

8411111

JDBC THIN SUPPORTS ONLY TWO O5LOGON VERIFIER TYPES WHILST OCI SUPPORTS MANY MORE
この不具合には2つの症状があります。

  1. 接続の確立が遅くなります。10.2のドライバを使用する場合、データベースへのJDBC Thin接続の確立により多くの時間がかかります。

  2. EUSはサポートされません。エンタープライズ・ユーザーとしてのデータベースへの接続は機能しません。

8889839

XA_RMERR BEING THROWN ON THE RECOVER(TMNOFLAGS) CALL
recover(tmnoflags)コールでxa_rmerrがスローされます

このリリースの既知の問題/制限事項

次のリストに、既知の問題または制限事項を示します。

  • ScrollableResultSetでADTデータに対してgetSTRUCT()をコールすると、NullpointerExceptionが発生することがあります。

  • クライアント側ドライバを使用して一度に16以上の接続をオープンしようとすると、プログラムが異常終了することがあります。これは、JDBCドライバによる制限事項ではありません。プロセスごとのファイル記述子数の制限を超えることが原因と思われます。この問題を解決するには、上限を高くします。

サーバー側内部ドライバには、次の制限事項があります。

  • LONG型とLONG RAW型は、PL/SQLプロシージャのパラメータが32512バイトに制限されます。Oracle Bug#5965340

  • SQLExceptionが連鎖する場合は、最初のSQLExceptionでのみgetSQLState値が戻ります。

  • Oracle 8のObject、REFおよびCollectionデータ型を使用したバッチ更新はサポートされません。

Java Virtual Machineがグリーン・スレッド・モードで動作している場合は、SSL接続上のJDBC OCIドライバが停止します。回避策は、Java Virtual Machineをネイティブ・スレッド・モードで実行することです。

日時書式、通貨記号および小数点記号は、常にアメリカの表記規則で表されます。

SPのSystem.out.println()を標準出力にリダイレクトするために使用するdbms_java.set_outputまたはdbms_java.set_streamユーティリティは、JDBCトレースがオンになっているときには使用しないでください。これは、dbms_java.set_outputおよびset_streamの現行の実装では、出力を標準出力に書き込むためにJDBCが使用されるためです。この種のユーティリティを使用すると無限ループになります。

JDBC OCIドライバとJDBC Thinドライバは、バイナリ・ストリームを介してCHARデータを正常に読み取りません。つまり、getBinaryStream()を使用してCHARデータを取得すると、正しい結果が得られないことがあります。回避策は、かわりにgetCHAR()またはgetAsciiStream()を使用することですその他にgetUnicodeStream()を使用する方法もありますが、このメソッドは非推奨になっています。

JavaおよびObject型で実装されるトリガーには制限があります。Javaメソッドとして実装されたトリガーは、Oracle 8のObject型またはCollection型のOUT引数を取ることができません。つまり、トリガーの実装に使用するJavaメソッドには、次の型の引数を使用できません。

  • java.sql.Struct

  • java.sql.Array

  • oracle.sql.STRUCT

  • oracle.sql.ARRAY

  • oracle.jdbc2.Struct

  • oracle.jdbc2.Array

  • oracle.jdbc2.SQLDataまたはoracle.sql.CustomDatumを実装するクラス

スクロール可能な結果セットの実装には、次の制限があります。

  • ScrollableResultSetに対するsetFetchDirection()は、何もしません。

  • ScrollableResultSetに対するrefreshRow()では、更新検出と同時実行性の組合せがすべてサポートされるわけではありません。次の表に、サポートされる組合せを示します。

  • サポートタイプ同時実行性
    なしTYPE_FORWARD_ONLYCONCUR_READ_ONLY
    なしTYPE_FORWARD_ONLYCONCUR_UPDATABLE
    なしTYPE_SCROLL_INSENSITIVECONCUR_READ_ONLY
    ありTYPE_SCROLL_INSENSITIVECONCUR_UPDATABLE
    ありTYPE_SCROLL_SENSITIVECONCUR_READ_ONLY
    ありTYPE_SCROLL_SENSITIVECONCUR_UPDATABLE

トリガーを作成する場合、PreparedStatementsの使用には制限があります。ドライバでは:fooをSQLパラメータとして認識するため、PreparedStatementの使用時に、トリガーを定義するSQLで:inおよび:outを使用できません。回避策は、かわりにStatementを使用することです。

15870552

REGISTEROUTPARAMETER WITH TYPENAME DOES NOT WORK IN SPECIFIC DATA TYPES
registerOutParameterで定義されたsqlTypeがCHARまたはVARCHARの場合、getString()を使用して値が戻されません。

14849379

ORACLE JDBC SSL NOT COMPATIBLE WITH NSS (NETSCAPE SECURITY SERVICES)
JDKの標準JSSE SSLプロバイダがNSS (Netscape Security Service)に置き換えられている場合、JDBC SSL接続は機能しません。

14828039

CONNECTION.SETPLSQLWARNINGS HAS NO EFFECT
Connection.getWarnings()でOracleConnection.setPlsqlWarningsのコールが無効です。問題のあるplsqlパッケージの作成後、getWarnings()でNULLが返されます。

14806443

NUMBER CORRUPTION FROM JDBC DRIVERS
GoldenGateレプリケーション・プロセスがORA-1722で失敗しました。詳細な分析により、2つの行の実際の数値が破損していることが示されました。数値の列は、JDBCのsetBigDecimalで更新されます。

14793214

ORACLEDATASOURCEFACTORY CLASS DOESN'T PARSE IMPLICITCACHINGENABLED PROPERTY
Tomcatアプリケーション・サーバーでJDBC 11.2.0.3を使用してoracle.jdbc.pool.OracleDataSourceインスタンスを作成する際、OracleDataSourceFactoryクラスはこのようなプロパティを、connectionCachingEnabled、connectionCacheNameなどとして解析します。ただし、implicitCachingEnabledは解析されません。

14789006

CHAR ATTRIBUTE OF OBJECT NOT BLANK PADDED TO LENGTH WHEN CREATED FROM JDBC
Oracle DBには、2つの定義済の型があります。1つには、CHAR型の列(TypeAとします)があり、もう1つの型はTypeA(TypeBとします)の表として定義されます。TypeBパラメータおよびその中の問合せデータを受け入れるために、table()関数を使用して関数が定義されます。入力パラメータの文字列の長さがTypeAで定義された長さより短い場合、ブランク文字を埋めて戻り値を調整する必要があります。ただし、JDBCクライアントが配列型でこの関数をコールする場合、戻り値は切り捨てられます。

14774730

DATABASEMETADATA.GETTABLES RETURNS SYNONYMS TO FUNCTIONS, STORED PROCEDURES
DatabaseMetadata.getTables(...)をコールする際、Oracle JDBCドライバは関数に対するシノニムおよびストアド・プロシージャに対するシノニムを戻しません。

14651229

JDBC OCI APPLICATION CRASHES JVM RANDOMLY
JDBC OCIを使用するJavaアプリケーションがランダムにクラッシュします。クラッシュは主にライブラリlibclntsh.soで発生し、IBM JDKライブラリで発生するものもあります。

14066597

JDBC 11.2.0.3 INSERTS \X0 CHAR AT IN A XMLTYPE RESULT
プリフェッチ・データの最終バイトのバイト位置で、追加の\x0文字を含むタブからXMLType.getclobval(col)を選択します。4000バイトのデフォルトLOBプリフェッチ・サイズでは、これはバイト・オフセット4000です。この動作は100%復元可能です。

13817407

REMAINING AS ACTIVE CONNECTION EVEN IF IT IS CLOSED BY TIMETOLIVETIMEOUT
TimeToLiveTimeoutによってORA-1013で接続が閉じられた際、接続がアクティブ・ステータスのままです。

13768437

ORA-01460 CALLING STORED PROCEDURE WITH BLOB
これは、次の場合に発生します。

  • INパラメータを指定してストアド・プロシージャをBLOBとしてコールする場合
  • コール可能文またはPreparedStatementを再利用する場合
  • 文の初回起動時にサイズ0のバインドが含まれる場合
バイトおよび文の2度目の起動時には、4000バイト超で32768バイト未満のバインド・サイズが含まれます。

13725094

SERVER-SIDE INTERNAL DRIVER CAN NOT HANDLE NULL INSERT AND RAISE ORA-01459
サーバー側内部ドライバはNULL挿入を処理できず、ORA-01459が生成されます

13536790

ADDSTATEMENTEVENTLISTENER AND REMOVESTATEMENTEVENTLISTENER SEEM TO DO NOTHING
次のメソッドが機能しません。

  PooledConnection.addStatementEventListener()
  PooledConnection.removeStatementEventListener()
これらは、JDBC 4.0の新しいメソッドです。

13070258

JDBC GETS ORA-17090 UNDER THE SPECIFIC CONDITION
特定の状況において、JDBCでORA-17090が発生します。

12851493

SQLEXCEPTION: INTERNAL - UNEXPECTED VALUE WHEN CONNECTING FROM Z/OS S390 CLIENT
トリビアル・スタンドアロン・プログラムを使用して、z/OSが稼働しているIBM s390から、JDBC/thinを使用して接続しようとしています。JDBC/thin 10.2.0.4では成功し、JDBC/thin11.1.0.7およびJDBC/thin 11.2.0.2では失敗します

10625488

ORA-06512 OR ORA-01461 WHEN CALLING STORED PROCEDURE WITH OUT CHAR ARGUMENT
単純なJDBCスタンドアロン・テストケースでORA-06512 (blank_trimming=false)またはORA-01461 (blank_trimming=true)が発生します。このエラーは、データベース表列に基づく%TYPEにより定義された、CHAR(10)引数を持つPL/SQLストアド・プロシージャで実行される、CallableStatementによってトリガーされます。

10048812

GETUPDATECOUNTS() RETURNS WRONG VALUE ON JDBC OCI.
エラー付きでPreparedStatement.executeBatch()が実行され、その後BatchUpdateExceptionが発生します。BatchUpdateExceptionによる例外ハンドラで、BatchUpdateException.getUpdateCounts()がJDBC OCIについて予期しない結果を返します。

9755639

ADDED ATTRIBUTE TO A UDT REFERENCED VIA VARRAY TYPE CAUSES ARRAYINDEXOUTOFBOUNDS
VARRAYで参照されるUDTに属性を追加すると、getARRAY(x)を使用して結果セットからフェッチする際に、次の例外が発生します。

965546

JDBC/THIN CANNOT USE TNSNAMES IFILE CLAUSE VIA ORACLE.NET.TNS_ADMIN
oracle.net.tns_adminが実際のtnsエントリを含むtnsnames.oraを指す場合は、機能します。oracle.net.tns_adminが他のtnsnames.oraを参照するIFILEを含むtnsnames.oraを指す場合、JDBC/thinでは機能しません