Oracle ODBCドライバ・リリース・ノートでは、次のトピックについて説明します。

1.1 説明

Oracle ODBC Driverによって、アプリケーションは、Microsoft Open Database Connectivity (ODBC) APIを使用するWindowsクライアントおよびUNIXクライアントからOracleデータベースに接続して、Oracleデータベースへの読取りや書込みを実行できるようになります。

Oracle ODBC Driver配布キットには、ダイナミック・リンク・ライブラリと共有ライブラリ(UNIXプラットフォーム向け)、ヘルプ・ファイル(UNIXおよびWindowsプラットフォーム上)、ライセンスのコピーおよびこの製品の説明が含まれています。ODBC対応アプリケーションを使用するには、Oracle ODBC Driverの他に次のソフトウェアが必要です。

  • Oracle Client & Netバージョン12.2

  • Oracle Database Server

Oracle ODBC DriverはODBC 3.52仕様に準拠しています。

1.2 新機能

次のリリースで導入されたOracle ODBC Driverの新機能について説明します。

1.2.1 ODBCリリース21c, バージョン21.1

リリース21c, バージョン21.1の新機能について説明します

Oracle ODBC Driverリリース21c、バージョン21.1の新機能はありません。

1.2.2 ODBCリリース19c, バージョン19.1.0.0.0

リリース19c, バージョン19.1.0.0.0の新機能について説明します

Microsoft Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows 7、Windows 8、Windows 8.1、Windows 10、Linux X86-64 (32ビット、64ビット)、Sun Solaris SPARC64 (32ビット、64ビット)、IBM AIX 5L (32ビット、64ビット)、Sun Solaris X64 (32ビット、64ビット)、HPUX IA64 (32ビット、64ビット)、ZLinux (32ビット、64ビット)の各オペレーティング・システム用のOracle ODBC Driverリリース19c, バージョン19.1.0.0.0ソフトウェアには、新機能はありません。

1.2.3 ODBCリリース18c, バージョン18.1.0.0.0

リリース18c, バージョン18.1.0.0.0の新機能について説明します

Microsoft Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows 7、Windows 8、Windows 8.1、Windows 10、Linux X86-64 (32ビット、64ビット)、Sun Solaris SPARC64 (32ビット、64ビット)、IBM AIX 5L (32ビット、64ビット)、Sun Solaris X64 (32ビット、64ビット)、HPUX IA64 (32ビット、64ビット)、ZLinux (32ビット、64ビット)の各オペレーティング・システム用のOracle ODBC Driverリリース18c, バージョン18.1.0.0.0ソフトウェアの機能は、次のとおりです。
  • unixODBC ODBCドライバ・マネージャは、unixODBC–2.3.2からunixODBC–2.3.4にアップグレードされています。

1.2.4 ODBC 12.2.0.1.0

リリース12.2.0.1.0の新機能を説明します。

Microsoft Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows 7、Windows 8、Windows 8.1、Windows 10、Linux X86-64 (32ビット、64ビット)、Sun Solaris SPARC64 (32ビット、64ビット)、IBM AIX 5L (32ビット、64ビット)、Sun Solaris X64 (32ビット、64ビット)、HPUX IA64 (32ビット、64ビット)、ZLinux (32ビット、64ビット)の各オペレーティング・システム用のOracle ODBC Driverリリース12.2.0.1.0ソフトウェアの機能は、次のとおりです。
  • 128バイトまでの長い識別子のサポートが追加されました。

  • タイムゾーン付きのタイム・スタンプとローカル・タイムゾーン付きのタイム・スタンプのサポートが追加されました。

    この機能は、ODBC TIMESTAMP日付型を使用している既存のODBCアプリケーションを変更する必要がありません。既存のアプリケーションがODBC TIMESTAMPデータ型を使用し、データベース列がTIMESTAMPの場合、現在の動作は保持されます。

    データベース列TIMESTAMP WITH TIMEZONEまたはTIMESTAMP WITH LOCAL TIMEZONEでは、ODBC TIMESTAMP_STRUCT内の時間コンポーネントは、ユーザーのセッションタイム・ゾーンにあります。この動作は、ユーザーのアプリケーションに対して透過的なため、ODBCアプリケーションを変更する必要がありません。

1.3 機能

Oracle ODBC Driverは、Microsoft ODBCのバージョン3.52仕様に準拠しています。

1.4 必要なソフトウェア

Oracle ODBC driverが現在サポートされているWindowsおよびUNIXオペレーティング・システム・バージョン、Oracle Databaseとともに出荷されるOracle Net ClientおよびOracle Universal Installerの最新リリースに対して動作保証されました。

Oracle ODBC Driverは、次に対して動作保証されています。

  • Windowsオペレーティング・システムの次のバージョン: Windows Server 2008、Windows Server 2008 R2、Windows 7、Windows 8およびWindows Server 2012

  • UNIXオペレーティング・システムの次のバージョン: Linux X86-64の32ビットと64ビットのポート、AIX5L、Solaris.Sparc64、Solaris X64、HPUX.IA64およびZLinux

Oracle Net Client 12.2

Oracle Database 12.2とともに出荷されるOracle Universal Installer

1.5 サーバー・ソフトウェア要件

Oracle ODBC DriverによるODBC対応アプリケーションのサポートに必要なサーバー・ソフトウェアは、Oracle Database Server 10.2以降です。

1.6 必要なハードウェア

WindowsおよびUNIXプラットフォームのOracle ODBC Driverシステム構成の要件は何ですか。

Oracle ODBC Driverには、「必要なソフトウェア」に記載されている動作保証されたWindowsプラットフォーム、およびOracle ODBC Driver for UNIX Platforms Readmeに記載されているごく一部のUNIXプラットフォームでサポートされているシステム構成が必要です。

1.7 マトリックスのテスト

次の表に、ODBC Driverが動作保証されたWindowsオペレーティング・システムのバージョンをまとめています。

表1-1 Oracle ODBC Driverが動作保証されたWindowsオペレーティング・システム

ドライバのバージョン データベースのバージョン オペレーティング・システム

12.2.0.1

OCIでサポートされているとおり

「必要なソフトウェア」を参照。

1.8 詳細情報

Oracle ODBC Driverのインストール後のタスク、既知のソフトウェア問題、UNIXプラットフォーム用のODBCドライバ、修正されたソフトウェア問題、UNIXプラットフォーム上の動作保証マトリックスについてさらに学習するには、次のトピックを参照してください。

1.8.1 インストール後

WindowsおよびUNIXプラットフォーム上のデータ・ソースを構成する必要があります。

Microsoft ODBC Administratorを使用して、Windows上でOracle ODBC Driverのデータ・ソースを構成します。詳細は、『Oracle Database開発ガイド』のデータ・ソースの構成に関する項を参照してください。

UNIXクライアントの場合は、「UNIXプラットフォーム用ODBC Driver」を参照してください。

1.8.2 Oracle ODBC Driverの既知のソフトウェアの問題

既知のソフトウェア問題およびサポートされていない使用について学習します。

  • SQLSetStmtOption SQL_QUERY_TIMEOUTは、データベース・サーバーがWindows NT上で実行されている場合は機能しません。回避策として、サーバーのsqlnet.oraファイルでBREAK_POLL_SKIP=1と設定すると、問題が解決します。デフォルトでは、これは100に設定されており、データベースはODBCアプリケーションによって設定されたタイムアウトをチェックしません。

  • SQLBindParameterがバッファをSQL_PARAM_INPUT_OUTPUTとしてバインドし、IN OUTパラメータを含むPL/SQLプロシージャを持っていて、パラメータがプロシージャで変更されていない場合、ドライバはStrLen_or_IndPtrSQL_NULL_DATAを返しません。

  • Oracle ODBC Driverでは、SQL SELECT問合せでCASE句とのKeysetカーソルの使用はサポートされません。

1.8.3 UNIXプラットフォーム用ODBC Driver

UNIXプラットフォーム用Oracle ODBC DriverはODBC 3.52仕様に準拠しています。これはOracle 12.2クライアントの機能に基づいています。

Oracle ODBC Driver 12.2でサポートされているプラットフォームについてさらに学習するには、「動作保証マトリックス」を参照してください。

この項では、次のトピックについて説明します

1.8.3.1 インストール前のタスク - unixODBC.orgからのODBC DMのインストール

UNIXプラットフォーム用のODBCドライバをインストールする前に、このインストール前のタスクを実行します。

.tarファイルをhttp://www.unixodbc.org/からダウンロードした後、ODBC Driver Managerをインストールしてください。

1.8.3.2 インストール後のタスク

次のインストール後のタスクを実行します。

  • UNIXプラットフォームでOracle ODBC Driverを構成します。

    install-home/odbc/utl/odbc_update_ini.shを実行することにより、Oracle ODBC Driverを構成できます。

    ユーティリティodbc_update_ini.shは、4つのコマンドライン引数を取得します。

    • arg-1 : unixODBC DMがインストールされた場所のパスを入力します。

    • arg-2 : ドライバのインストール場所のパス(オプション)を入力します。この引数が渡されない場合、ドライバのパスはユーティリティが実行されるディレクトリに設定されます。

    • arg-3 : ドライバ名(オプション)。この引数が渡されない場合、ドライバ名はOracle 12c ODBC driverに設定されます。

    • arg-4 : データ・ソース名(オプション)。値が渡されない場合、DSNはOracleODBC-12cに設定されます。

  • PATHLD_LIBRARY_PATHLIBPATHTNS_ADMINなどの環境変数の値を更新および検証します。

1.8.3.3 ODBC Driverのアンインストール

次のタスクを実行して、UNIXプラットフォーム用Oracle ODBC Driverをアンインストールします。

  • ~/.odbc.iniファイルを更新します。

    • DSNエントリ(OracleODBC-12cなど)を[ODBC Data Sources]から削除します。

    • 対応するDSNの完全なDSN情報を削除します。

  • ODBCDM_HOME/etc/odbcinst.iniファイルを更新します。

    • Oracle 12c ODBC Driverのドライバ情報を削除します。

  • UNIXプラットフォーム用Oracle ODBC Driverを削除します。

    • libsqora.so.12.1を削除します

  • PATHLD_LIBRARY_PATHLIBPATHTNS_ADMINなどの環境変数をリセットします。

1.8.3.4 修正されたバグ

修正されたソフトウェア問題のリンクをクリックします。

「修正されたソフトウェアの問題」を参照してください。

1.8.3.5 動作保証マトリックス

Oracleでは、示されたUNIXプラットフォームで、DM 2.3.11に対してリリース23.3用のOracle ODBC Driverが動作保証されています。

これらのUNIXプラットフォームを表1-2に示します。64ビットUNIXプラットフォームでは、DM 2.3.11は-DBUILD_REAL_64_BIT_MODE -DSIZEOF_LONG=8 -fshort-wcharフラグが付けられて作成され、動作保証されています。

表1-2 UNIXプラットフォーム上のOracle ODBC Driverの動作保証マトリックス

プラットフォーム 32ビット/64ビット UnixODBC DMバージョン

Linux x86-64

32ビット、64ビット

2.3.11

Solaris SPARC64

32ビット、64ビット

2.3.11

AIX5L

32ビット、64ビット

2.3.11

Solaris x64

32ビット、64ビット

2.3.11

HPUX.IA64

32ビット、64ビット

2.3.11

ZLinux

32ビット、64ビット

2.3.11

各オペレーティング・システムおよびOracleクライアント・ソフトウェアの要件についてさらに学習するには、各プラットフォームのインストレーション・ガイドを参照してください。

1.8.4 修正されたソフトウェアの問題

修正されたソフトウェアの問題は、バージョンごとに表示されます。

ソフトウェアのバグの修正は、一部は特定のプラットフォームで検出されますが、実際、ほとんどは一般的なものです。プラットフォーム固有のソフトウェアのバグの修正も、少しあります。次のバージョンで行われたソフトウェアのバグの修正について説明します。

1.8.4.1 バージョン21.1.0.0.0

バージョン21.1.0.0.0の修正された問題をリストします

  • Oracle ODBC Driver 19cを使用して、バインド変数を使用して複数のレコードを表に挿入すると、ORA-01461エラーが発生します(Oracle Bug#31705178)。

  • バッファ長がゼロのSQLBindParameter ()でエラーORA-24812が発生しました(Oracle Bug#31628155)。

  • フェッチ時に一部の列に対してSQLColumns ()が正しくないデータ型を返しました(Oracle Bug#31608753)。

  • 大/小文字を区別する表でSQLPrimaryKeys ()を使用すると、正しい主キーが返されます(Oracle Bug#31449196)。

  • SQL APIファンクションSQLRowCount ()は、MERGEコマンドに対して0を返します(Oracle Bug#31200057)。

  • SQLColumnsが、ROWIDデータ型列を正常にフェッチできます(Oracle Bug#31134284)。

  • Oracle ODBC Driver拡張構文に小数を含むタイムスタンプを挿入すると、エラーが発生しました(Oracle Bug#30920050)。

  • SQL接続エラー#1 State: 25000 Message: [Microsoft][ODBC Driver Manager] Failed to enlist on the calling object's transaction (Oracle Bug#30317397)。

  • Oracle ODBC Driver 18.0.0.0を使用してNCHARまたはNVARCHARデータ型としてデータを挿入できないと、エラーORA-01461が発生しました(Oracle Bug#29833984)。

1.8.4.2 バージョン19.1.0.0.0

バージョン19.1.0.0.0の修正された問題をリストします

  • 12.2 HY003:1:-1:[ORACLE][ODBC][ORA]ORA-0001エラーが発生してUNIX ODBC Driverが失敗します。(Oracle Bug#27684767)

  • Oracle ODBC Driverでの行のSELECT操作がDataDirect ODBC Driverより遅くなりました。(Oracle Bug#27641555)

  • BAM=AllSuccessfulを設定してDB 12.2に接続すると、Oracle ODBCでORA-3137 [KPOAL8CHECK-3]エラーが発生します。(Oracle Bug#28250843)

  • 12cのOracle ODBC DriverでTIMESTAMP変換に失敗しました。(Oracle Bug#27132192)

  • ODBCコールでLONGリテラルを使用してPL/SQLを実行すると、アプリケーションがクラッシュしました。(Oracle Bug#27743516)

1.8.4.3 バージョン18.1.0.0.0

バージョン18.1.0.0.0の修正された問題をリストします

  • unixODBCを2.3.2から2.3.4へアップグレードします。(Oracle Bug#19179407)

  • ODBC SQLColumnsでは、空の文字列を列名として渡す際にエラーを返さなくなりました。(Oracle Bug#23637102)

  • ODBC Recordset.Updateでは、12c Oracle ODBC Driverを使用してエラーORA-00942で失敗する問題がなくなりました。(Oracle Bug#24926081)

  • Exadata Express Cloudに接続する際に、DSNにDBA=Rを設定できるようになりました。(Oracle Bug#25376850)

  • OdbcConnection.GetSchemaでは、SYSTEM.ACCESSVIOLATIONEXCEPTIONエラーをスローしなくなりました。(Oracle Bug#25597467)

  • ODBC Driverでは、SQL_DESC_BIND_OFFSET_PTRが設定されている場合、クラッシュしなくなりました。(Oracle Bug#25832115)

  • ODBC SQL_ATTR_QUERY_TIMEOUTが想定どおりに動作するようになりました。(Oracle Bug#26352452)

  • Oracle ODBCの行挿入操作がDataDirect ODBC Driverより遅くなくなりました(Oracle Bug#23288642)

  • 11gR2 ADO/ODBCアプリケーションの移行後、レコードセット操作で間違った結果が発生することがなくなりました。(Oracle Bug#19000463)

  • ODBC Driver API SQLStatisticsでは、フィルタ処理用にSCHEMANAME値を渡すようになりました。(Oracle Bug#23259086)

  • ODBC SQLFetchでは、終了(コア・ダンプ)エラーで失敗しなくなりました。(Oracle Bug#23186348)

  • ODBC SQLFetchでは、TIMESTAMP列をSQL_C_CHARにバインドする際にデータなしを返さなくなりました。(Oracle Bug#23120325)

1.8.4.4 バージョン12.2.0.1.0

バージョン12.2.0.1.0の修正された問題をリストします。

  • Oracle ODBC Driver 12.1.0.2では、DBMS.DESCRIBEプロシージャの使用時にパフォーマンス低下が確認されました。(Oracle Bug#22566981)

  • ODBC Driverでは、OCI_ATTR_DRIVER_NAMEが設定されている場合に、ドライバ名にバージョン番号が含まれるようになりました(例: ODBCCLNT : 12.2.0.1.0)。(Oracle Bug#21795969)

  • Oracle ODBC Driverでは、12.1.0.2から実行した場合に、出力パラメータSPが切り捨てられていました。(Oracle Bug#21616079)

  • SSLSSREGHDLRでマルチスレッドUNIX ODBCアプリケーションがハングしていました。(Oracle Bug#21459317)

  • Oracle ODBC Driverでは、サーバー名の長さが1024バイトまで可能になりました。(Oracle Bug#21379636)

  • Oracle ODBC Driverでは、エラー[ORACLE][ODBC][ORA]ORA-00911 :INVALID CHARACTER(#911)が発生していました。(Oracle Bug#21372951)

  • Oracle ODBC Driver 12.2では、文キャッシュが有効である場合にORA:01000エラーが発生していました。(Oracle Bug#21255142)

  • Oracle ODBC Driverが2つのOUTパラメータRAWおよびDATEを指定したプロシージャをコールした場合、ORA-01483エラーにより失敗していました。(Oracle Bug#20716320

  • Oracle ODBC Driverでは、生成された例外において空のメッセージ文字列が返されていました。(Oracle Bug#20517697)

  • Oracle ODBC Driverは、戻りタイプREFCURSORが指定されたOracle関数のコール時にクラッシュしていました。(Oracle Bug#20387007)

  • Oracle ODBC Driverでは、BLOBタイプのイメージの挿入時にデータが破損していました。(Oracle Bug#19720146)

  • Oracle ODBC DriverのSQLColumns() APIでは、TSLTZ列の不正なメタデータが返されていました。(Oracle Bug#19573657)

  • Oracle ODBC Driverでは、CHARタイプとのバインド時にTSLTZ出力が異なっていました。(Oracle Bug#19545406)

  • Oracle ODBC Driverは、カーソル・タイプSQL_CURSOR_KEYSET_DRIVENによりSQLFETCH()で終了していました。(Oracle Bug#19531841)

  • Oracle ODBC Driverは、REFカーソルを返すプロシージャからのフェッチ中に終了していました。(Oracle Bug#19530596)

  • Oracle ODBC Driverでは、SQLFETCH()において未定義の記号: M_FMEMALLOCSQL_C_WCHARとともに返されていました。(Oracle Bug#19529966)

  • Oracle ODBC Driverは、SQL_C_CHARまたはSQL_C_BINARYとのバインド時にSQLFETCH()で終了していました。(Oracle Bug#19529718)

  • Oracle ODBC Driverは、4093文字を超えて渡す際にクラッシュしていました。(Oracle Bug#19524047)

  • Oracle ODBC Driverは、NCHARデータ型のストアド・プロシージャを使用した場合に、ODBC 12.1.0.1で正しく実行されませんでした。(Oracle Bug#19158940)

  • Oracle ODBC Driver 12.1.0.1では、プロシージャの使用時にNULLが返されました。(Oracle Bug#19026257)

  • Oracle Database 11g リリース2 (11.2) ADO/ODBCアプリケーションの移行により、レコードセット操作で不正な結果が生じていました。(Oracle Bug#19000463)

  • Oracle ODBC Driverは、CHR(0)を含むCLOBを取得できませんでした。(Oracle Bug#18749178)

  • Oracle ODBC Driverでは、11.2.0.3 + P30のINSERT文でデータベース例外が発生していました。(Oracle Bug#18681683)

  • Oracle ODBC Driverでは、LONG RAW列に64Kを超えるデータを挿入する際に、日本語環境でアクセス違反を取得していました。(Oracle Bug#18606539)

  • Oracle ODBC Driverでは、NVARCHAR2列に中国語を挿入する際に、ORA-01461エラーが報告されていました。(Oracle Bug#18232462)

  • ODBC 12.1アプリケーションでコメントが埋め込まれた問合せを使用すると、ORA-24374エラーにより失敗していました。(Oracle Bug#18024745)

  • Oracle ODBC Driverでは、データのフェッチ後に一時LOBが解放されませんでした。(Oracle Bug#17928169)

  • Microsoft Accessクライアントは、データベース・リンクを介して表のリンク付けを試行中にハングしていました。(Oracle Bug#17925209)

  • 日本語環境でCLOB型にCHR(0)のデータが含まれる場合に、ODBC接続がハングしていました。(Oracle Bug#17901129)

  • Oracle ODBC Driverは、ORANLS12でクラッシュしていました。(Oracle Bug#17896495)

  • Oracle ODBC Driverでは、KEYSET_DRIVENカーソルを使用して索引構成表からデータをフェッチする際に、ORA-1410エラーが報告されていました。(Oracle Bug#17583959)

  • Oracle ODBC Driverでは、問合せを使用した場合に切り捨てられた値が返されていました。(Oracle Bug#16959397)

  • ODBCアプリケーションでSQLCOLUMNSの後にSQLFETCHが実行された場合に、無効なビューについてSUCCESS_WITH_INFOメッセージが返されていました。(Oracle Bug#16324625)

  • ODBCアプリケーションでLOBの配列の挿入が行われた場合に、最後のLOBのみが複数回挿入されていました。(Oracle Bug#16235055)

  • Oracle ODBC DriverでMicrosoft AccessへのODBCアイドル接続が行われた場合に、ODBCコール失敗エラーが発生していました。(Oracle Bug#16181438)

  • TIMESTAMPに不正なバインドが設定されていると、Oracle ODBC DriverからSQLEXECUTEでのアクセス違反が返されていました。(Oracle Bug#16009315)

  • Oracle ODBC Driverを11.2にアップグレードした後で、SQLSETPARAMおよびSQL_WCHAR (NCHAR)が破損していました。(Oracle Bug#14623077)

  • Oracle ODBC Driverでは、DATE型のデータを2度目に挿入した際に、ORA-1843またはORA–1830エラーが報告されていました。(Oracle Bug#14308740)

  • Oracle ODBC Driverでは、挿入時にORA-1エラー、ORA-14400エラーの後にORA-22275エラーが報告されていました。(Oracle Bug#13518550)

  • マルチスレッド・アプリケーションでのSQLFETCHコールについて、ODBCアプリケーションによりS1004が返されることがほとんどありませんでした。(Oracle Bug#13044472)

  • Oracle ODBC Driverでは、内部結合およびKEYSET_DRIVENカーソルが指定された問合せについて、ORA-00918エラーが報告されていました。(Oracle Bug#9642938)

  • Oracle ODBC Driverでは、TIMESTAMP WITH LOCAL TIME ZONEデータ型がサポートされるようになりました。(Oracle Bug#7533808)

  • Oracle ODBC Driverは、無効なSQL文が指定されたSQLPREPAREの使用時に終了していました。(Oracle Bug#7325015)

1.9 ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracleサポートへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。