OracleからSQLServerへのDB-LINK(データベースリンク)の作成方法

64BitOSだとSQLServerからOracleへのデータベースリンクで一部不具合があったので逆バージョン(Oracle→SQLServer)を試してみた。今のところ問題なく接続できているので作成方法を紹介します。

事前準備

1.Oracle Generic Connectivity の存在確認

Universal Installerを起動してインストール済みかを確認する。

2.SYS.HS_FDS_CLASS の存在確認

下記のSQLを実行して結果が返ってきたらOK!

結果が0件であれば、[%ORACLE_HOME%¥rdbms¥admincaths.sql]をSYSユーザーで実行する。

設定手順

1.ODBCの設定

[管理ツール]の[データソース(ODBC)]にて、データベースリンク用のシステムDSNを新規作成する。

2.inithsodbc.oraの編集

[%ORCALE_HOME%HSADMINinithsodbc.ora]を編集します。

inithsodbc.oraとは
異機種間サービス接続のためにOracleデータベースで使用される初期化ファイルのことです。ファイルの命名規則は、init[サービス名].oraとなっており、inithsodbc.ora の場合は、[hsodbc]がデータベースリンク時の接続先となります。

3.listener.oraの編集

[%ORCALE_HOME%networkadminlistener.ora]を編集します。

SID:[HSODBC]を追加する。

リスナーを再起動します。
※[管理ツール]-[サービス]からでOK

4.tnsnames.oraの編集

[%ORCALE_HOME%networkadmintnsnames.ora]を編集します。

サービス:[HSODBC]を追加する。

5.データベースリンクの作成

下記のSQLを発行してデータベースリンクを作成する。

ユーザー名、パスワードはダブルクオーテーション(“”)で囲まないと大文字されるので注意が必要。

6.接続のテスト

正しくデータベースリンクが作成されたかSQLを発行して確認します。テーブル名の後ろにアットーマーク(@)に続けてデータベースリンク名を指定します。

結果が返ってきたらOKです。1回目は時間はかかりますが2回目以降はキャッシュされるのか速くなるようです。

スポンサーリンク