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.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の新機能について説明します
- unixODBC ODBCドライバ・マネージャは、unixODBC–2.3.2からunixODBC–2.3.4にアップグレードされています。
1.2.4 ODBC 12.2.0.1.0
リリース12.2.0.1.0の新機能を説明します。
-
128バイトまでの長い識別子のサポートが追加されました。
-
タイムゾーン付きのタイム・スタンプとローカル・タイムゾーン付きのタイム・スタンプのサポートが追加されました。
この機能は、ODBC
TIMESTAMP
日付型を使用している既存のODBCアプリケーションを変更する必要がありません。既存のアプリケーションがODBCTIMESTAMP
データ型を使用し、データベース列がTIMESTAMP
の場合、現在の動作は保持されます。データベース列
TIMESTAMP WITH TIMEZONE
またはTIMESTAMP WITH LOCAL TIMEZONE
では、ODBCTIMESTAMP_STRUCT
内の時間コンポーネントは、ユーザーのセッションタイム・ゾーンにあります。この動作は、ユーザーのアプリケーションに対して透過的なため、ODBCアプリケーションを変更する必要がありません。
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_IndPtr
でSQL_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
に設定されます。
-
-
PATH
、LD_LIBRARY_PATH
、LIBPATH
、TNS_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
を削除します
-
-
PATH
、LD_LIBRARY_PATH
、LIBPATH
、TNS_ADMIN
などの環境変数をリセットします。
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_FMEMALLOC
がSQL_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)を参照してください。
Oracle Database ODBCドライバ・リリース・ノート, リリース23
F73929-03
2023年10月
Copyright © 2009, 2023, Oracle and/or its affiliates.