読者です 読者をやめる 読者になる 読者になる

ログマニアックス

日々学んだこと、気づいたことをメモ代わりに残していければ。カバー範囲は割と広めです。

SQL Serverから直接Oracleを覗くリンクサーバーが超便利

 

ちょっとした備忘録的に。

最近よくしている作業として、
オラクルのサーバー群から参照したデータをローカルのSQL Serverで処理して、
アクセスやCSVに落として処理するという作業。

そのときによくオラクルのデータを直接SQLサーバーから落としたくなることがあります。
その際の設定として使っているのが、「リンクサーバー」という設定。

リンクサーバーとは

サーバーのリンク

こちらに書いてありますが…

 

クライアント層、サーバー層、およびデータベース サーバー層

 

OLE DBという仕組みを使うことで、抽象化してSQLからOracleや他のDBを参照できる仕組みです。

 

実際の設定

で、実際の設定としては

全般の設定で、プロバイダー・製品・データソース・プロバイダー文字列を設定します。

この時、プロバイダー文字列を

・MSDAORA

にするか、

・OraOLEDB

にするか、最後の参照法が代わります。

その上で、セキュリティの設定で、

「このセキュリティコンテキストを使用する」を選んで、OracleのIDとパスをセットします。

 

参照する際の工夫

上記で設定された際に、SQL分でどうよ部下ですが、
以下の形になります。

まず、「MSDAORA」でつないだ場合。

SELECT * FROM ..[リンクサーバ名].[スキーマ名].[テーブル名]

「OraOLEDB」でつないだ場合、呼び出し方が違うので注意してださい。

 

SELECT * FROM OPENQUERY(リンクサーバ名,'SELECT * FROM スキーマ名.テーブル名')