Oracle73のデータをSQL Server 2005に取り込む

SSISを使えばデータベースごと取り込むことはできるのですが、あらかじめSQL Server 2005で定義したテーブルに、Oracle73上のレコードを流しこむのがよくわかりませんでした。結局、以下の方法で解決しました。

やりたいこと

Oracle73上のデータベース(DB1)上のテーブルTABLE1のデータをSQL Server 2005上のデータベース(DB2)のTABLE2に取り込む。

なお、Oracle73でのユーザー名・パスワードはUSER1/PASS1とする

準備

  • SQL Server 2005側でOracleクライアントをインストールしておく。(SQL*Netだの)
  • MSSMSにて以下のクエリを実行してリンクサーバを作成する。
EXEC sp_addlinkedserver 'SQLNET', 'Oracle', 'MSDAORA', 'DB1'
EXEC sp_addlinkedsrvlogin 'SQLNET', 'FALSE',NULL, 'USER1', 'PASS1'
  • 以下のクエリにてデータを取り込む
insert into DB2.dbo.TABLE2 select * from SQLNET..DB1.TABLE1;

参考

http://www.microsoft.com/Japan/msdn/vs_previous/Vstudio/techmat/feature/sqlinkserv/