Oracle ODBC Driver 10.1.0.2.0

説明

Oracle ODBC Driver は、Microsoft ODBC（Open Database Connectivity）API を実装する Microsoft Windows XP、Windows 2000、Windows NT および Windows 98 アプリケーションから Oracle データベースへの読込みおよび書込みを可能にします。

ODBC 対応のアプリケーションを使用するには、Oracle ODBC Driver の他に、次のソフトウェアが必要です。

- Oracle Net リリース 10.1.0.2.0
- クライアント側のネットワーク・トランスポート
- Oracle Server

新機能

ODBC 10.1.0.2.0

- パラメータ・マーカーを持つINSERT/UPDATE文のNCHAR列のサポートを追加しました。
  以前のドライバは列がNCHAR型であることを認識できませんでした。そのため、OCIレベルでのバインディング時に適切な属性を設定できませんでした。 また、NCHAR列のサポートを追加したことにより、SQLDescribeParamコールはINSERT/UPDATE文内のパラメータ情報を返すことが可能となりました(その他の種類 の文では返すことができません)。

ODBC 9.2.0.4.0

- フェイルオーバー・イベント通知を受け取るための、コールバック・ルーチンを登録する機能を追加しました。
- Microsoft Transaction Server (MTS) データソース構成オプションのデフォルト値を「MTS無効」に変更しました。データソース構成フォーム内のこのオプションに対するチェックボックスはデフォルトでチェックされています。MTSサポートを有効にすると、 たとえMTSを使用していなくてもデータベース・リンクと接続フェイルオーバーで問題が発生します。このデフォルト値を無効とすることで、問題の発生が減少します。この変更はODBCドライバのオンライン・ヘルプには反映されていません。 ヘルプは次リリースで修正されます。

ODBC 9.2.0.3.0

- SQLDescribeParam サポートを無効にするデータソース構成オプションを追加しました。
- SQL 文内の無効な制御文字は、Oracle データベースに渡される前に ODBC ドライバによって常に削除されます。
- オンライン・ヘルプを HTML ベースに変更しました。
- ドライバのデフォルトの動作をSQL文から無効な制御文字を取り除くよう変更しました。oraodbc.iniファイルに存在していたRemoveControlCharsオプション を削除しました。このオプションは不要です。

ODBC 9.2.0.2.0

- データ・フェッチの性能を向上させるため、インターナル・プリフェッチ・キャッシュを実装しました。特に、一度に一行をフェッチするアプリケーションに有効です。キャッシュ・サイズはデータソース構成のオプションです。
- 「プリフェッチ数」データソース構成オプションを「フェッチ・バッファ・サイズ」に変更しました。「フェッチ・バッファ・サイズ」オプションは、インターナル・プリフェッチ・キャッシュのサイズを指定します。デフォルトは、64,000 バイトです。
- データソース構成オプションに、「数値の設定」を追加しました。このオプションでは、文字列としてバインドされた数値データの受け渡しで、どの数値設定を使用するか指定します。このオプションでは、以下の設定を選択します。
  ・Oracle の NLS 設定（デフォルトの設定）
  ・Microsoft の地域設定（Oracle OLE DB ドライバの動作と合わせ相互運用性を向上）
  ・US 設定（英語環境以外で MS Access または DAO を使用する際に必要です）
- SQL TIMESTAMP データ・タイプのサポートを追加しました。このサポートは、Oracle 9.0.1 以上のクライアントおよび Oracle 9.0.1 以上のサーバーのみです。
- 無効な制御文字が常に SQL 文から削除されるようドライバのデフォルトの動作を変更しました。oraodbc.ini ファイルの RemoveControlChars オプションは不要なため、無効になりました。

ODBC 9.0.1.3.0

- 次の接続構文が使用できます。
  <username>/<password> as sysdba
  <username>/<password> as sysoper
- また、"as sysdba"および"as sysoper"の部分は、パスワード・フィールドに含めることもできます。
- ステートメント属性 SQL_ATTR_RETRIEVE_DATA が使用できます。

ODBC 9.0.1.2.0

- ログオン時のユーザー名に <username>/<password> 構文が使用できます。

ODBC 8.1.7.4.0

- ODBC ドライバは、Oracle 8.1.6 以降のデータベースに接続する際、 SQLGetInfo コールの SQL_SQL92_VALUE_EXPRESSIONS に対して SQL_SVE_CASE を戻します。
- BOOKMARK および SQLBulkOperations ルーチンによる、フェッチおよび位置サポートを追加しました。これにより ADO の Recordcount プロパティは、-1 の代わりに結果セットのレコード数を戻すようになります。
- "SQL_WCHAR 強制サポート"が使用可能にされると、SQLColumns および SQLProcedureColumns 関数は文字列カラムを、SQL_WCHAR、SQL_WVARCHAR または SQL_WLONGVARCHAR で戻します。

ODBC 8.1.7.3.0

- 構成画面に接続およびステートメント属性 SQL_ATTR_METADATA_ID のデフォルト値を追加しました。通常、デフォルトは SQL_FALSE です。このデータソース・オプションがチェックされると、接続時のデフォルトが SQL_TRUE に設定されます。これらの値は ODBC 仕様にリストされています。明確に接続後に属性値を変更するアプリケーションでは、このオプションにより影響を受けることなくコールは期待通りに終了します。このオプションは、「ODBC Oracle ドライバ構成」ダイアログ・ボックス画面の Workarounds タブ内「METADATA ID デフォルトに SQL_TRUE をセット」で設定します。
- SQLGetData 拡張の SQL_GD_ANY_COLUMN、SQL_GD_ANY_ORDER および SQL_GD_BOUND サポートを利用するためのオプションが構成画面に追加されました。このオプションを使用すると、構成画面で"LONG 列の強制取り出し"オプションが選択されていない場合でも、"LONG 列の強制取り出し"が有効になります。"LONG 列の強制取り出し"オプションに起因する動作は SQLGetData 拡張オプションにも当てはまります。

ODBC 8.1.7.2.0

- ODBC のインストールは複数 Oracle ホームがサポートされます。ODBC ドライバーは、インストールされる Oracle ホーム名により一意に識別されます。たとえば、"OraHome81" という Oracle ホームにインストールされる ODBC ドライバ名は、"Oracle in OraHome81"になります。ODBC ドライバは、以前は常に "Oracle ODBC Driver" としてインストールされていました。インストールされた ODBC ドライバの一覧は、ODBC データソースアドミニストレータ ユーティリティの "ドライバ" タブで参照できます。既存の Oracle8.1.7 ホームで ODBC 8.1.7.2.0 ドライバにアップデートする場合、既存の Oracle ODBC ドライバのデータソース定義は、新しくインストールするドライバ名に変更されます。
- Oracle8 ODBC ドライバ構成画面に「接続テスト」ボタンを追加しました。これにより、以前の ODBC ドライバに付随していた "ODBC Test Utility" は、提供されなくなりました。
- SQL_ATTR_METADATA_ID 属性のサポートを追加しました。この属性は ODBC3.0 の機能で、ODBC カタログ関数の引数の大小文字の扱いを指定するのに使用されます。例えば、SQL_ATTR_METADATA_ID が SQL_TRUE に設定された場合、SQLTables 関数の TableName 引数では、大小文字は同一に扱われます。
  Microsoft ODBC 仕様のデフォルト値は、SQL_FALSE です（大小文字が区別されます）。SQL_ATTR_METADATA_ID がサポートされる以前は、二重引用符で括られていない場合、すべてのカタログ関数の引数で、大小文字の区別が行われていませんでした。大小文字を区別しないデータベースに格納されているオブジェクトに対して大小文字を区別する引数を使用している既存のアプリケーションは修正が必要な場合があります。たとえば、"{call proc1(?)}" 関数コールを使用する場合、'proc1'が'PROC1'としてデータベースに格納されている場合でも以前は正常に動作していました。現在は、'proc1'として格納されているか SQL_ATTR_METADATA_ID に SQL_TRUE をセットしてある場合、同様に関数が正常にコールされます。
- SQL_DBMS_NAME の SQLGetInfo リターン値を "Oracle" に変更しました。以前は "Oracle8" がリターンされていました。

ODBC 8.1.7.1.0

- ODBC データソース構成インターフェースを再編成しました。システム上の tnsname.ora の TNS 名検索を統合しました。
- Microsoft EXEC 構文サポートの追加。この機能が有効な場合、Oracle8 データベース・サーバーによって処理される前に EXEC 文で使用されるプロシージャ(または、ファンクション)コールは、その同等な Oracle プロシージャ(または、ファンクション)コールに解釈されます。
- Microsoft EXEC 構文サポートを有効または無効にするためのデータソース構成オプションの追加。
- Batch Autocommit モード用データソース構成オプションの追加。
- Oracle8 ODBC ドライバーのエラー発生時のデフォルト動作は、トランザクションをロールバックします。Oracle7 ODBC ドライバーのデフォルト動作は、エラー発生個所までのトランザクションをコミットします。
  このオプションは、Oracle7 ODBC ドライバーとの互換性のため、データソースを構成することができるよう追加されました。エラー無しの行を全てコミットするオプションが追加されましたが Oracle8i Client でのみ利用可能です。
- SQLDescribeCol で SQL_CHAR 列 を 'SQL_WCHAR'、SQL_VARCHAR 列を 'SQL_WVARCHAR' および SQL_LONGVARCHAR 列 を'SQL_WLONGVARCHAR' データ型で返すデータソース構成オプションの追加。このオプションを有効にすると UNICODE ADO アプリケーションが可能になります。ADO アプリケーションは、結果列をバインドする方法を決定するために SQLDescribeCol のリターン値を利用します。データベースは、UNICODE 型として列を定義する事をサポートしていないため、現在の Oracle ODBC ドライバーは 'SQL_W' データ型を返しません。 デフォルトでは、WCHAR への変換サポートは無効になっています。
- カタログ関数の SQLColumns、SQLPrimaryKeys および SQLTablePrivileges の性能を向上させました。

ODBC 8.1.5.5.0

- Oracle8 ODBC Driver の Microsoft ODBC 準拠レベルは 3.51 になりました。
- Oracle8 ODBC Driver は UNICODE をサポートします。UNICODE サポートは、OCI（Oracle コール・インタフェース）によって使用可能となる UNICODE 機能に依存しています。OCI 8.1 によって、SQLBindParameter による UNICODE データのデータベースへの入力と、SQLBindCol もしくは SQLGetData での UNICODE データのデータベースからの取得がサポートされます。
- Microsoft Transaction Server (MTS) サポートを無効にするためのデータソース構成オプションが追加されました。デフォルトでは MTS サポートは有効です。
- ユーザーが期限切れのパスワードでデータベースに接続しようとすると、ODBC ドライバはパスワード変更を要求し、パスワードが変更されてからデータベースに接続します。SQL_DRIVER_NOPROMPT パラメータを指定して SQLDriverConnect で接続を試みると、ドライバーはパスワード変更を要求せず、かわりにパスワードが期限切れになったというエラーを表示して、接続試行を終了します。
- Microsoft の ODBC 用再配布可能コンポーネントは、Oracle ODBC Driver インストール時にはインストールされなくなります。再配布可能コンポーネントの最新版は、Microsoft の Universal Data Access WEB サイト (http://www.microsoft.com/japan/developer/data/default.asp)から入手することが可能です。
- 今までのバージョンで sqora.wri という名前だったファイルは、ODBCRelnotes.wri という名前に変更されました。

ODBC 8.1.5.4.0

- SQL_GD_BLOCK (SQL_GETDATA_EXTENSIONS) サポートの追加
- DSN 用レジストリ中に Password エントリが可能になり、ユーザーがパスワードを入力するかわりに、ドライバがこのレジストリを読込んでパスワードを取得することができます。これは Oracle7 ODBC ドライバとの互換のために実装されています。レジストリにパスワードを格納するツールは提供されませんので、ご注意ください。
- SQL_CLOSE や SQL_DROP パラメータが付いた SQLFreeStmt や、SQLCloseCursor や、ステートメント・ハンドルに対する SQLFreeHandle コールで、OCI カーソルを強制クローズするオプションが可能になりました。このオプションのデフォルトでは、上記の状況では OCI カーソルを強制クローズしません。OCI カーソルを強制クローズするとパフォーマンスに影響しますが、一方で意図的に強制クローズする必要がある場合もありますので、このオプションが追加されました。

ODBC 8.1.5.3.0

- プロシージャ呼出しからの結果セットを戻すインプリメンテーションが拡張されました。カーソル参照パラメータは、プロシージャ呼出しで省略することが可能です。これは他の ODBC の実装と一貫性および互換性を持つようにしたためです。

機能性

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

必要なハードウェア

Oracle ODBC Driver を使用するには、Windows XP、Windows 2000、Windows NT または Windows 98 でサポートされるシステム構成が必要です。次の要件も含まれます。

最低 32MB のシステム・メモリー

最低 3MB の空きディスク領域

必要なソフトウェア

Microsoft Windows XP、Windows 2000、Windows NT 4.0 または Windows 98 オペレーティング・システム

Oracle Net Client R10.1.0.2.0

Oracle 10.1.0.2.0 に付属の Oracle Universal Installer

サーバーに必要なソフトウェア

Oracle ODBC Driver を介して ODBC 対応アプリケーションをサポートするために必要なサーバー・ソフトウェアを次に示します。

Oracle Server 8.1.7 以上

リリース・ノート

1. インストール後の処理

Oracle ODBC Driver のデータソースを構成するには、Microsoft ODBC データソース・アドミニストレータを使用します。詳細については、Oracle ODBC Driver ヘルプ・ファイルの「データソースを構成する」の項を参照してください。

2. 新機能

詳細については、Oracle ODBC Driver ヘルプ・ファイルの新機能の説明を参照してください。

3. データ変換

Oracle ODBC Driver は、REAL データ型と DOUBLE データ型の操作および表示について、Microsoft ODBC 3.00 SDK（Software Development Kit）のガイドラインに準拠しています。SQL_DOUBLE と SQL_FLOAT の精度（使用できる最大桁数）は 15 桁です。

DOUBLE 型値の精度は、Oracle データベースに格納される場合、ODBC で現在サポートされている精度よりもはるかに高くなります。その結果、値の精度が失われることになります。次に例を示します。

Oracle のデフォルト精度の FLOAT 型で

定義された次の数があるとします。

123.9991029382123

この数を Windows プラットフォーム上で変換すると、

次のように精度が失われます。

123.999102938212

精度が失われることにより、異なるアプリケーションでは動作が違ってくる場合があります。Microsoft Access の場合、ユーザーはデータを更新できなくなります。これは、Oracle には 123.9991029382123 という値で存在するのに対し、Microsoft Access には元の値であるにもかからわず切り捨てられた 123.99910293821 という値で存在するので、Microsoft Access はデータが変更されたと認識するためです。Microsoft Access が 123.99910293821 という切り捨てられた数を選択条件にすると、Oracle データベースには該当する行が存在しないため、行の更新ができません。Oracle データベースには、元の値である 123.9991029382123 が格納されている行しかありません。

Microsoft Query の場合は不正に表示されます。

たとえば、次のような倍精度の値を表示するとします。

-1.123400000000000E-001

Microsoft Query では次のように表示されます。

-1.123400000000000E-00

Microsoft Query では、SQLColAttributes がコールされ、表示サイズ 22 が返されます。ODBC SDK で定義されている倍精度データの表示書式は次のとおりです。

合計長 22

（符号 1、数値 15、小数点 1、文字 E、符号 1、数値 3）

上記の例では、精度に 15 桁ではなく 16 桁の数値があるため、合計で 23 桁の文字列になっています。データが正しく表示されないのはこのためです。

一般的に、ODBC で精度の問題を避けるには、Oracle データベースに格納される DOUBLE データ型の値が『Microsoft ODBC プログラマーズリファレンス & SDK』に記載されている仕様に従っていることを確認します。

4. SQLDescribeParam

SQLDescribeParam が使用可能となっていますが、Oracle データベースは、入力パラメータに関する情報を返すことはサポートしていません。ODBC ドライバは入力パラメータに対して以下の値を返します。

DataTypePtr = SQL_VARCHAR

ParameterSizePtr = 999

DecimalDigitsPtr = 0

NullablePtr = SQL_NULLABLE

(#556749)

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

- データベース・サーバーが Windows NT 上で実行されている場合、SQLSetStmtOption の SQL_QUERY_TIMEOUT は動作しません。
- Windows NT データベース・サーバー上で行われている文の実行をキャンセルする場合、SQLCancel は動作しません。