LoginSignup
22

More than 5 years have passed since last update.

SQLServerからOracle(11g)にリンクサーバを設定し、SELECT文で取得する

Posted at

最初に

備忘録として記述してあるので、一部端折っている部分があります。

やりたい事

SQL ServerからOracle(11g)にリンクサーバーを設定し、SQLServerへのSELECT文実行でSQL ServerのテーブルとOracleのテーブルをJOINした結果を取得する。

前提条件

  • SQL Server導入済み
  • SQL Server Management Studio導入済み
  • Oracle導入済み

作業順序

  1. SQL ServerがOracleに接続出来るようにする
  2. リンクサーバーの設定をする
  3. SELECT文を実行する

SQL ServerがOracleに接続出来るようにする

OracleのページからOracle Clientのインストーラを取得して、実行。実行は当たり前だが、SQL Serverが起動している端末で行う。インストールコンポーネントの選択でOracle Provider for OLE DBがインストールされる様にする。
インストール完了後、端末を再起動をする。

リンクサーバーの設定をする

SQL Server Management Studioからの設定方法。
1. SQL Serverに接続して、サーバーオブジェクト->リンクサーバー->プロバイダーを開く
2. OraOLEDB.Oracleをダブルクリック
3. InProcess許可にチェックを付けてOKとする
4. リンクサーバーで右クリックして、新しいリンクサーバーを作成
5. 以下の様に設定してOKとする

ページ 項目 設定値
全般 リンクサーバー 任意
サーバーの種類 その他のデータソース
プロバイダー Oracle Provider for OLE DB
製品名 Oracle
データソース サーバ(IP等):ポート番号/サービス (例:192.168.11.1:1521/oradb)
プロバイダー文字列
セキュリティ ローカルサーバーのログインとリモートサーバーのログインのマッピング なし
上記一覧で定義されないログインの接続方法 このセキュリティコンテキストを使用する
リモートログイン Oracle接続時のユーザー名
パスワード Oracle接続時のパスワード

Select文を実行する

SelectFromLinkServer(Oracle)
SELECT * from リンクサーバー名..スキーマ名.テーブル名

SQL Server Management Studio上ではリンクサーバー名->default->スキーマ名.テーブル名のツリーで見える為、以下の様なSELECT文を想像するが、defaultは不要。

NGSelectFromLinkServer(Oracle)
--エラーSELECT文。メッセージ7312となる
SELECT * from リンクサーバー名.default.スキーマ名.テーブル名

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22