Oracleのビューを使用する
OracleのDBサーバとローカルのMSDEを連携しやすくするために、リンクサーバーを使用してビューを作りました。
USE TESTDB GO /* リンクサーバーを追加 */ EXEC sp_addlinkedserver @server = 'ORASRV', /* リンクサーバの参照名。好きにつける。 */ @srvproduct = 'Oracle', /* 固定 */ @provider = 'MSDAORA.1', /* 使用するプロバイダ */ @datasrc = 'OraSrv' /* Netサービス名 */ /* リンクサーバーにログオンできるようにする */ EXEC sp_addlinkedsrvlogin @rmtsrvname = 'ORASRV', /* さっきつけた参照名 */ @useself = 'FALSE', /* TRUEならSQLServerの認証情報を使用する */ @locallogin = 'sa', /* どのログインで使用するか。NULLなら全ログイン */ @rmtuser = 'SCOTT', /* お約束 */ @rmtpassword = 'TIGER' /* これもお約束 */ GO /* ビューを追加する */ CREATE VIEW EMP AS SELECT * FROM SPSVR1..SCOTT.EMP GO
上のように、MSDEからOracleのオブジェクトを指定する場合は、リンクサーバー名..スキーマ.オブジェクト、となります。(要はカタログ部がないのね)
参考
- OLE DB Provider for Oracle[www.microsoft.com]
- [HOWTO] SQL Server で Oracle へのリンク サーバーのセットアップおよびトラブルシューティングを行う方法[support.microsoft.com]
削除方法はこんな感じ
USE TESTDB GO DROP VIEW JBASE_TBL; GO EXEC sp_droplinkedsrvlogin 'ORASRV', 'sa' EXEC sp_dropserver 'ORASRV' GO
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/102
コメント
Oracle Provider For OLE DBを使用して同じようにリンクサーバーを作成しようとしましたが、実行時にエラーになります。やり方が悪いのでしょうか
というか、重くって使い物になりません。
MSDE同士のリンクサーバーでも、リンク先のテーブルに更新を行う間、データが多いとリンク先が応答しなくなります。
回避方法はないのでしょうか。