SSIS 64位環境訪問Oracle11g

2021-06-21 20:04:26 字數 2344 閱讀 2917

ssis 為了要能夠在64位的機器上面讓ssis訪問oracle,當然需要安裝64位的oracle provider,但是遇到最大的問題在於ssis在執行的時候分成兩種元件,分別是dtexec.exe(32位版)以及dtexec.exe(64位版),分別存在於program files(x86)以及program files目錄之下。當ssis在執行時候或者是在利用匯入匯出資料(64位版)時都不會有問題

但是最大的問題在於ssis在設計階段時利用的bids只有32位版,因此在開發時若是要測試連線,會找不到對應的32位提供程式,而發生初始化提供程式的問題(所以大家這時會質疑我明明已經裝了,為什麼他說找不到)

因此若是要解決方式就必須同時安裝32位以及64位的oracle client。

以下說明,在64位windows環境下安裝oracle client & oledb元件的步驟(我的作業系統是windows server 2008 r2):

1、需要先準備32位以及64位兩種版本的oracle client,建議使用11.1.0.7.0版,因為如果是使用10.2.0.1版本需要再安裝兩個oracle補丁(#4547817 & #5383042) ,如果沒有安裝以上補丁會遇到ora-12154: tns:無法解析指定的連線id的問題。

2、如果系統上有舊的oracle clients,請複製備份tnsnames.ora以及sqlnet.ora檔案。(位於%oracle_home%/network/admin/目錄下)

3、安裝以及刪除舊的oracle client以及安裝目錄(需要重啟計算機,才能夠刪除目錄)。

4、在64位sql server的機器上面執行oracle 11g client的setup.exe,

必須先安裝32 位版本

5、選擇[管理員]模式全部安裝(專業級人士可以自行選擇模式)。

6、選擇相應的語言下一步,然後根據需要修改路徑

在此我將32位的路徑資料夾改為client_1,

將64位的路徑資料夾改為client_2.

7、安裝完後重新將tnsnames.ora替換新安裝的client的%oracle_home%/network/admin資料夾中,32位和64位都要替換,否則在使用plsql或者bids建立oracle資料來源時會提示tns錯誤。

p.s.如果在安裝完2個client(32位和64位)之後使用自帶的net manager配置服務命名時其配置的的都是64位的,即配置的ora都存在64位的client目錄的admin資料夾中,所以始終無法使用bids連線oracle(除非使用ip\服務名方式)

8、重複以上步驟再安裝一次64位client

p.s.安裝時會出現[oraclemtsrecoveryservice 已存在]或者一些path路徑值過多等的錯誤資訊,請點選[忽略]繼續安裝即可,當然也可以找尋相應的解決方案解決更好,只是這些問題都不是非常嚴重的。

9、修改以下的登錄檔設定,然後重啟電腦

hkey_local_machine\software\microsoft\msdtc\mtxoci    

hkey_local_machine\software\wow6432node\microsoft\msdtc\mtxoci

將值改為

oracleocilib = oci.dll

oraclesqllib = orasql11.dll (舊的值是: sqllib80 .dll)

oraclexalib = oraclient11.dll (舊的值是: xa80.dll)

此時就可以正常地在64位環境中的bids讀取oracle資料了。各位可以利用32位版以及64位版的匯入匯出資料進行測試。

但是要記得的是,使用bids時,它是根據32位的資料提供程式,因此在開發以及排錯時還是利用32位的oracle oledb來讀取資料。但是當ssis封裝佈署到64位sql server執行時,他就會改使用64位的oracle oledb

64位環境下SSIS連線oracle問題收集

1,title connection manager test connection failed because of an error in initializing provider.error while trying to retrieve text for error ora 12154...

windows 64位環境下php執行環境部署配置

2 解壓安裝包,我的解壓到d tools php5.6 3 配置php.ini 在解壓的目錄中,找到php.ini檔案,如果沒有這個檔案,可以複製目錄中的php.ini development 該檔名為php.ini a.設定時區 date.timezone prc b.設定編碼 default c...

windows 64位環境下php執行環境部署配置

2 解壓安裝包,我的解壓到d tools php5.6 3 配置php.ini 在解壓的目錄中,找到php.ini檔案,如果沒有這個檔案,可以複製目錄中的php.ini development 該檔名為php.ini a.設定時區 date.timezone prc b.設定編碼 default c...