64位 SQL Server2008鏈接訪問Oracle 過程匯總解決方法記錄
經過幾天不停的網上找資料,實驗,終於聯通了。
環境:系統:win 2008 ,SqlServer2008 R2, 連接Oracle10g
在SqlServer2008 R2機器上需要安裝Oracle客戶端32位和64位兩個,然后配置連接別名。設置注冊表。詳細情況見下面
1.錯誤1
------------------------------------------------
64位機器上建立OLE_DB鏈接報錯
報錯內容為: '因為ole_db訪問的'MSDAORA'配置為在單線程單元模式下運行,所以訪問的接口無法用於分布式查詢'
經調查后,發給客戶如下建議解決方式:
-------------------------------------------------------------------
原因:在64位的SQL Engine中已經不提供MSDAORA 的驅動了,可以使用OraOLEDB.Oracle,安裝oracle 64位客戶端即可。
建議方案:
方案一:SQLServer這邊安裝64位的oracle 11g r2客戶端
2.錯誤2:
錯誤信息:
消息 7302,級別 16,狀態 1,過程 NC_ProcSimOutGeneral,第 18 行
無法創建鏈接服務器 "NC" 的 OLE DB 訪問接口 "OraOLEDB.Oracle" 的實例。
解決方法:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers\OraOLEDB.Oracle.1]
"AllowInProcess"=dword:00000001
如果Providers下面沒有OraOLEDB.Oracle則新建
找到注冊表項HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTCMTxOCI
OracleOciLib值改為oci.dll、
OracleSqlLib值改為orasql11.dll、
OracleXaLib值改為oraclient11.dll。
方案二:下載最新的驅動
下載一個ACE.Oledb.12.0 for X64位的驅動,並把連接字符串MSDAORA 更改為 Microsoft.ACE.OLEDB.12.0
ACE.Oledb.12.0 for X64位的驅動微軟官方下載地址:
http://www.microsoft.com/zh-cn/download/details.aspx?id=13255
注:查看遠程連接的provider的訪問接口的方法,查看-》對象資源管理器-》服務器對象-》連接服務器-》訪問接口