資源描述:
《ssis連接oracle參考》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、SSIS連接Oracle參考WuShuoVanceinfo相關(guān)知識:1,理解服務(wù)器之間的訪問機(jī)制:連接oracle的時(shí)候,是按照SQLServer引擎的版本去載入oracleprovider的版本。如果SQLServer是64bit的,只能載入64bitoracle的provider。32bit的SQLServer只能使用32bit的oracle的provider。2,很多SQLServer的圖形界面工具都是32bit的,比如SSIS,32位的import/exportwizard,這些32bit的工具只能load32bit的oracleprovider。如果想知道這個(gè)工具是不是32b
2、it的,去檢查工具所對應(yīng)的exe文件是不是在programfiles(x86)子路徑下,或者在進(jìn)程管理器中檢查是否帶有32字樣。3,Linkedserver或SSIS去連接oracle的時(shí)候,首先會(huì)讀取tnsname.ora文件,然后讀取sqlnet.ora文件,然后用SQLServr.exe直接去連oracle,連接成功以后會(huì)再次讀取tnsname.ora文件,然后開始載入oracleOLEDB的DLL文件。在64位操作系統(tǒng)上安裝的32位SQLServer中,讀到的路徑是這樣的:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.2.118)
3、(PORT=1521))(CONNECT_DATA=(SID=express)(CID=(PROGRAM=D:ProgramFiles(x86)MicrosoftSQLServerMSSQL.1MSSQLBinnsqlservr.exe)(HOST=SCT-IT-SQLTEST)(USER=SYSTEM))))在64bit的操作系統(tǒng)上按照32bit的SQLServer服務(wù)器以及32bit的oracle客戶端,是可以創(chuàng)建linkedserver和SSIS程序包的。但是,oracle在處理包含括號文件全路徑名稱時(shí)有個(gè)bug,這個(gè)bug在8i,9i和10g的版本上都存在。必須通過
4、打oracle的補(bǔ)丁來解決。4,如果使用64bit的SQLServer服務(wù)器和64bit的oracle客戶端,linkedserver和SSIS是可以工作的。但是oracle在64bit的OLEDBprovider上有個(gè)bug,會(huì)導(dǎo)致連接服務(wù)器訪問失敗。報(bào)錯(cuò)信息如:Msg7333,Level16,State2,Line1CannotfetcharowusingabookmarkfromOLEDBprovider"OraOLEDB.Oracle"forlinkedserver.8這個(gè)問題在32位環(huán)境下使用32位MSDAORA(Microsoft’sOL
5、EDBProviderforOracle)provider或者32-bitORAOLEDB(Oracle’sOLEDBProvider)provider時(shí)不會(huì)發(fā)生。只發(fā)生在使用64-bitORAOLEDBprovider時(shí)(MSDAORA沒有64位版本存在)。1,如果在一個(gè)64位的SQLServer上想同時(shí)使用linkedserver和SSIS的BIDS去連oracle,必須要同時(shí)安裝64位和32位的oracle客戶端。但是,在oracle10g早期的版本中,貌似有一個(gè)bug導(dǎo)致oracle10g的32位和64位客戶端無法同時(shí)在一臺(tái)機(jī)器上工作。我這次在11g和10g上都安裝了雙客戶端,
6、沒有遇到這個(gè)問題,但不確定該問題是否已經(jīng)被解決。2,32位上還可以使用oracle的ODBCdriver創(chuàng)建ODBC數(shù)據(jù)源,然后在創(chuàng)建連接的時(shí)候使用MicrosoftOLEDBforODBCprovider然后指向oracle的ODBC數(shù)據(jù)源。如果是64位的SQLServer2005,默認(rèn)安裝是沒有64bit的MicrosoftOLEDBforODBCprovider的。需要去下載并安裝64位MicrosoftOLEDBforODBCprovider,然后就可以按照同樣的方法使用oracle的ODBC。http://www.microsoft.com/downloads/details
7、.aspx?FamilyID=000364db-5e8b-44a8-b9be-ca44d18b059b&displaylang=en3,使用oracleODBCprovider比較容易遇到中文字符的問題,建議盡量使用OLEDB的provider。步驟:1,根據(jù)Oracle版本(10g或11g),安裝相對應(yīng)的64位客戶端Administrator模式,并配置相應(yīng)的LISTENER和SERVICENAME。81,安裝32位Administrator