情況: A機上有SSMS 18.x, B機上有SQL Server 2008 R2資料庫, C機上有Oracle Database 11.2.0.4.0資料庫 我想在A機用ssms連C機的oracle,一番瞭解,普遍做法是裝ODAC xcopy包,裡面有oledb組件,然後就可以在sqlserver ...
情況:
- A機上有SSMS 18.x,
- B機上有SQL Server 2008 R2資料庫,
- C機上有Oracle Database 11.2.0.4.0資料庫
我想在A機用ssms連C機的oracle,一番瞭解,普遍做法是裝ODAC xcopy包,裡面有oledb組件,然後就可以在sqlserver的鏈接伺服器里添加oracle資料庫。如圖:
於是我開始在ssms所在電腦裝odac,結果提供程式的下拉列表裡死活不出現“Oracle Provider for OLE DB”,後來想想也許應該在sql server所在電腦裝才對,果然,有了,但緊接著又是連不上的問題:
按關鍵字OraOLEDB.Oracle 7302搜,相同問題一堆,有說勾一下【允許進程內】的,有說把sqlserver服務的啟動賬戶改為【LOCAL SERVICE】的,也有通過若幹步驟修改一個叫【MSDAINITIALIZE】的dcom組件的許可權的,我都試過了,sqlserver伺服器也重啟了無數次,odac版本也試過若幹個,統統不能解決我的問題。絕望之下,我下了【Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)】,只勾了裡面的oledb(具體叫啥我懶得回看了)一個東西,終於連上了。
總結:
- 一定要有個SQL Server。光ssms和oracle是建立不起連接的,本質上連接oracle的是sql sever,不是ssms本身。
- oledb要裝在sql server所在電腦上。我是裝oracle客戶端里的oledb才有用,odac里的沒用,估計還是版本問題。