===============================================
2020/1/17_第1次修改 ccb_warlock
===============================================
最近2個月在寫mssql的存儲過程,業務需求要向第三方oracle寫回數據,所以這里記錄下如何解決如何通過mssql連接oracle並寫回數據。
通過SSMS查看,如果Oracle Provider for OLE DB存在,則跳過步驟一(安裝Oracle數據訪問組件ODAC)。
PS.為了方便,我將包解壓到E盤。
簡單說下幾個目錄的內容:
asp.net:ASP.NET 2 的組件
asp.net4:ASP.NET 4 的組件
instantclient_12_2:oracle客戶端
network:存放tnsnames.ora
odp.net4:.NET 4 的組件
odp.net20:.NET 2 的組件
oledb:OLE DB的組件
oramts:MTS服務
我電腦裝了火絨,安裝之后SSMS一直看不到Oracle Provider for OLE DB,關了火絨之后重新安裝,SSMS里就能看到了。
管理員身份打開cmd后,執行下面的命令
e:
cd ODAC122010Xcopy_x64
install.bat oledb d:\ODAC ODAC
PS: ODAC,可以隨意指定一個字符串。這個參數是用來寫入注冊表的。安裝成功后會在注冊表HKEY_LOCAL_MACHINE\Software\Oracle\KEY_ODAC("KEY_"后面的ODAC就這個隨意指定的字符串)
編輯系統變量PATH,添加值 D:\ODAC 和 D:\ODAC\bin
打開SSMS,右鍵修改訪問接口OraOLEDB.Oracle的屬性,勾選“允許進程內”,點擊“確定”;
三、測試連接功能
在oracle中,定義了表USER_T如下
用下面的sql語句在ssms中查詢,能獲取結果說明連接功能正常。
參考資料:
1.https://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html