摘要:SSIS 連接 Oracle 連線過程
最近測試 SSIS 2008 對 Oracle 10g 的資料來源連線設定,採用以下兩種 SSIS 內建的 provider 進行連接
- OracleClient Data Provider(ADO.Net Provider)
- Microsoft OLE DB Provider for Oracle(OLE DB)
結果各自回應以下兩種錯誤:
- 錯誤訊息:因為初始化提供者時發生錯誤,所以測試連接失敗。System.Data.OracleClient 需有 Oracle 用戶端軟體版本 8.1.7 或以上版本。
- 錯誤訊息:因為初始化提供者時發生錯誤,所以測試連接失敗。找不到 Oracle 用戶端及網路元件。這些元件由 Oracle 公司供應且為 Oracle 8i 以上版本用戶端軟體安裝的一部分。在安裝這些元件前您無法使用此提供者。
起初以為是沒裝 Oracle Client 的緣故,所以裝了 Oracle Client 9.1,但問題依舊,只是改由 Oracle 回應連接錯誤訊息
- 因為初始化提供者時發生錯誤,所以測試連接失敗。ORA-12514: TNS:監聽器無法解析連線描述區指定的 SERVICE_NAME
- 因為初始化提供者時發生錯誤,所以測試連接失敗。ORA-12504: TNS:未提供監聽器 CONNECT_DATA 中的 SERVICE_NAME
- 因為初始化提供者時發生錯誤,所以測試連接失敗。ORA-12545: 連線失敗, 因為目標主機或物件不存在
嘗試著使用 Net Manager 修改 listener.ora,發現還是無法順利連線,直到看到黑暗大的文章,才改用 ODP.NET from Oracle 作為 provider
卻又卡在 ODP.NET 的連線字串設定上,最後發現連線字串格式應該是:IP:Port/DSN
但此格式僅對測試連接有效,SSIS 不支援指定的路徑格式(測試成功卻無法儲存連線字串的矛盾狀況?)
需再修改成此格式:IP/DSN
至於使用非標準的 Oracle 1521 port 該怎麼辦,只能再請出 google 大神幫忙