Microsoft OLE DB Provider for Oracle (データベース エンジン)
Microsoft OLE DB Provider for Oracle を使用すると、Oracle データベースのデータに分散クエリを実行できます。
Oracle データベース インスタンスにアクセスするリンク サーバーを作成するには
SQL Server を実行しているサーバー上の Oracle クライアント ソフトウェアが、プロバイダが要求するレベルを満たしていることを確認します。Microsoft OLE DB Provider for Oracle には、Oracle Client Software Support File Version 7.3.3.4.0 以降と SQL*Net Version 2.3.3.0.4 が必要です。
SQL Server を実行しているサーバーで Oracle データベース インスタンスを指す SQL*Net の別名を作成します。詳細については、Oracle のマニュアルを参照してください。
sp_addlinkedserver を実行してリンク サーバーを作成します。この際、provider_name として MSDAORA を指定し、data_ source として Oracle データベース インスタンスの SQL*Net の別名を指定します。
次の例では、SQL*Net の別名が OracleDB と定義されていると想定しています。
sp_addlinkedserver 'OrclDB ','Oracle',' MSDAORA','OracleDB'
sp_addlinkedsrvlogin を使用して、SQL Server ログインから Oracle ログインへのログイン マッピングを作成します。
次の例では、Oracle ログイン OrclUsr と Oracle パスワード OrclPwd を使用して、SQL Server ログイン Joe を手順 3. で定義したリンク サーバーにマップしています。
sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
各 Oracle データベース インスタンスには、名前のないカタログが 1 つだけ備わっています。Oracle リンク サーバーのテーブルは、OracleLinkedServerName**..OwnerUserName.**TableName という形式の 4 部構成の名前を使用して参照する必要があります。たとえば、次の SELECT ステートメントでは、OrclDB リンク サーバーによってマップされたサーバーで Oracle ユーザー MARY が所有しているテーブル SALES が参照されます。
SELECT *
FROM OrclDB..MARY.SALES
Oracle リンク サーバーのテーブルを参照するときは、次の規則に従います。
引用符で囲んだ識別子を使用しないでテーブル名と列名を Oracle に作成した場合は、名前をすべて大文字だけで指定します。
引用符で囲んだ識別子を使用してテーブル名と列名を Oracle に作成した場合は、Oracle でそれらの名前を作成したときと同じ大文字と小文字の組み合わせで指定します。
INSERT ステートメントは、テーブル内の特定の列に NULL または既定値を指定できる場合でも、テーブル内のすべての列に値を指定します。
レジストリ エントリ
使用している Oracle クライアント ソフトウェアで OLE DB Provider for Oracle が機能するようにするには、コマンド ラインからレジストリ ファイルを実行してクライアントのレジストリを変更する必要があります。クライアント ソフトウェアの複数のインスタンスを同時に実行しないでください。次の表に、レジストリ ファイルを示します。これらのファイルは、MDAC (Microsoft Data Access Component) のインストールを含むディレクトリ構造と同じディレクトリ構造内にあります。通常、このディレクトリ構造は C:\Program Files\Common Files\System Files\OLE DB にあります。
Oracle クライアント |
Windows NT または 9x |
Windows 2000 |
---|---|---|
7.x |
mtxoci7x_winnt.reg |
mtxoci7x_win2k.reg |
8.0 |
mtxoci80_winnt.reg |
mtxoci80_win2k.reg |
8.1 |
mtxoci81_winnt.reg |
mtxoci81_win2k.reg |