MS SQLServerのリンクサーバ機能

MSSQLを中心として、他のMSSQL/ODBCソース/IndexesServiceらを繋げてひとつのSQL文が実行できるみたい。
過去、perlでDBI/DBDを駆使して、他所からデータを配列/ハッシュに入れ込んで、それらを繋げていた。

まぁーそれが一筆書きなSQL文で達成できるそうな。

 
 
 
 
 
 
 
 
SELECT
  MS.F1,
  ORA.VALUE1
FROM
  MSSQL.テーブルA MS,
  ORACLE.テーブルB ORA
WHERE
  MS.F1 = ORA.F1

な感じで。

っで、ORACLEとの連携を調べた。

検証

MSSQLORACLE結果備考
MSSQL2005 32bitORACLE10g 10.2.0.1 32bit standardok (MSDAORA)EXEC sp_addlinkedserver
@server = N'ORA'
,@provider=N'MSDAORA'
,@srvproduct=N'Oracle'
,@datasrc=N'ORCL'
MSSQL2005 32bitORACLE11g 11.2 32bit expressX (MSDAORA)
MSSQL2008R2 64bit
Express with Advanced Services
ORACLE11g 11.2 32bit expressXMSSQLでMicrosoft OLE DB Provider for Oracle(MSDAORA)が提供されていない
MSSQL2008R2 64bit
Express with Advanced Services
ORACLE11g 11.2 32bit express + ODAC 64bitok (OraOLEDB.Oracle)

*ORACLE11g expressは無償版であるが、windowsでは32bit版しか提供されていない

MSSQL2008R2 Expressでの初期プロバイダーリスト。
2012y07m03d_212222713.pngORACLEインストール後、2012y07m03d_213253187.png
と変化はない。*Search.CollatorDSOはWindowsSearchを入れると追加される
ODAC 64bitのインストールは、まず、ダウンロードした ODAC112030Xcopy_x64.zip を C:\tmp などで展開させ
C:\TEMP\ODAC112030Xcopy_x64 とする。その後、コマンドプロンプトを起動させ、このフォルダー内で

install oledb c:\oracle xe

としてc:\oracleへODACをインストール。その後、c:\oracleとc:\oracle\binをPATH環境変数に加えます。
するとプロバイダーが一つ追加されます。
2012y07m03d_223812105.png OraOLEDB.Oracle:Oracle Provider for OLE DB
このOraOLEDB.Oracleを使ってリンクサーバを作成します。
  EXEC sp_addlinkedserver
  @server = 'OracleLink',
  @srvproduct = 'Oracle',
  @provider = 'OraOLEDB.Oracle',
  @datasrc = '(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST =ORACLE-Server)(PORT = 1521))(CONNECT_DATA=(SERVER =DEDICATED)(SERVICE_NAME = XE)))'
  *単に@datasrc = 'XE'でも可。その際、TNS_ADMIN 環境変数でtnsnames.oraの指定が必要かも
  GO
  Exec sp_serveroption 'OracleLink' , 'rpc' , TRUE
  GO
  Exec sp_serveroption 'OracleLink' , 'data access' , TRUE
  GO
  Exec sp_serveroption 'OracleLink' , 'rpc out' , TRUE
  GO
  SELECT * FROM OracleLink..SCOTT.EMP
  GO

2012y07m03d_225514817.png

他のリンクサーバ

過去、IndexesServiceのプロバイダー(Microsoft OLE DB Provider for Indexing Service)を使った
LinkedServerは全文検索に有効だったが、いまやWindowsSerchに。
っで、このWindowsSerchは同じくプロバイダー(Microsoft OLE DB Provider for Search)があって、
リンクサーバ設定画面に表示されるのだが、正しく機能してくれない。
vbsとかからは問題なく使えるのだが....


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2012-09-08 (土) 22:26:11 (1804d)