2015-08-24 140 views
1

我試圖將數據從Oracle複製到SQL Server 2012中,和我選擇數據源如Microsoft OLE DB提供程序的Oracle時,以下消息:SQL Server 2012中的連接到Oracle

測試連接失敗,因爲初始化提供程序時發生錯誤。 未找到Oracle客戶端和網絡組件。這些組件 由Oracle Corporation提供,並且是Oracle版本 7.3.3或更高版本客戶端軟件安裝的一部分。

我嘗試使用.NET Framework數據提供程序的Oracle,我也得到:

嘗試加載Oracle客戶端庫扔BadImageFormatException。 在安裝了32位 Oracle客戶端組件(system.data.oracleclient)的64位模式下運行時,會發生此問題。

在SQL Server 2000中(我嘗試遷移到SQL Server 2012/2014),我可以選擇直接在OraClientHome中選擇Oracle。

一些額外的信息,可以幫助診斷問題:

  1. 使用蟾蜍64位,它指向64位Oracle下載;但是,我不知道它是否使用32位驅動程序或64位驅動程序。我也可以運行查詢等沒有問題。

  2. ODBC,我可以看到Oracle在OraClientHome中創建一個名爲Oracle的32位(我猜測)位ODBC連接,但不能在SysWOW64 odbc連接中。

  3. 我成功地建立了運行64位SQL Server 2012的服務器上的鏈接服務器連接OraOLEDB.oracle下Linked_Server提供商

  4. 在創建一個SSIS包,我無法建立服務器對象顯示出來與Oracle的連接。

  5. 我可以在MS Access和Excel中成功運行查詢。

  6. (NEW)我可以使用導入導出數據64位而不是32位來複制文件。

任何幫助將不勝感激!

+0

https://clinthuijbers.wordpress.com/2012/06/24/ssis-and-an-oracle-ole-db-source/ – lad2025

回答

-1

嘗試在MS站點上安裝和使用Oracle客戶端,並使用SSIS傳輸數據。 我得到了同樣的問題,但是當我使用oracle客戶端連接(你會在連接選擇選項中看到它)都工作正常。

祝你好運!

0

在許多情況下,64位驅動程序不兼容,您必須安裝32位驅動程序,然後確保您選擇使用32位驅動程序,如果您創建作業以運行命令選項中的程序包作爲最後一個複選框。我也使用toad在桌面上從oracle獲取數據,它在64位驅動程序上工作正常,但在我們的新服務器上,我必須安裝32位驅動程序,即使我能夠與連接管理器創建odbc連接。在安裝之前,我還不得不重新啓動win服務器,然後才能拿到它。

+0

我確實安裝了64位和32位驅動程序。我在ODBC連接器中看到32位驅動程序,服務器看到64位驅動程序。 –

+0

您是否嘗試在該步驟的執行選項卡上運行強制使用32位運行時的作業? –

+0

由於SSIS沒有看到32位驅動程序,因此失敗。 –