2015-12-07 67 views
0

語境SSIS批量導入

我試圖創建一個SSIS包,以從Excel導入(Microsoft Excel工作表(.xlsx)格式)文件到SQL Server 2012的所有文件都有一個標籤具有相同的標籤名稱。

  • 該過程在我指定單個文件時起作用。

  • 當我嘗試使用For Each容器時,該過程失敗。

在每個文件枚舉我已經創建了一個變量[[email protected]]

錯誤

在Excel連接管理器的表情,我已經嘗試了以下值ConnectionString中:

> - @ [用戶:: ExcelFileName]

- 「Provider = Microsoft.Jet.OLEDB.4.0; Data Source =」+ @ [User :: ExcelFileName] +「; Extended Properties = Excel 8.0」

- 「Provider = Microsoft.ACE.OLEDB.12.0; Data Source =「+ @ [User :: Filename] +」;擴展屬性= \「Excel 12.0 \」;「

  • 「提供者= Microsoft.ACE.OLEDB.12.0;數據源=」 + @ [用戶名::] + 「;擴展屬性= \」 Excel的12.0; HDR = YES \ 「;」

他們都失敗了。

這是錯誤消息:

錯誤在數據流任務[Excel源[1]]:SSIS錯誤代碼DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法調用連接管理器「Excel連接管理器」失敗,錯誤代碼爲0xC0202009。在此之前可能會發布錯誤消息,並提供更多關於爲什麼AcquireConnection方法調用失敗的信息。

數據流任務錯誤[SSIS.Pipeline]:組件「Excel源」(1)驗證失敗並返回錯誤代碼0xC020801C。

數據流任務錯誤[SSIS.Pipeline]:一個或多個組件驗證失敗。

數據流任務錯誤任務驗證期間出現錯誤。

包[連接管理器「Excel連接管理器」]錯誤:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80040E73。 OLE DB記錄可用。源:「Microsoft OLE DB服務組件」Hresult:0x80040E73描述:「初始化字符串的格式不符合OLE DB規範。」

有什麼建議嗎?

+0

運行SSIS時是否打開Excel文件?當我忘記關閉時,我經常看到這個錯誤。 –

+0

不,我沒有 - 文件已關閉。 – Ben

+0

你可以得到一個Excel連接手動工作嗎?一旦你可以這樣做,你可以使用你的變量@ [User :: ExcelFileName]覆蓋連接的ServerName屬性。 Excel可能很難在SSIS中使用。我從來沒有設法得到一個xlsb的工作,只有xls和xlsx。此外,值得檢查程序包是否以32/64位模式運行(Project >><項目名稱>屬性調試> Run64BitRuntime應該等於FALSE)。 –

回答

0

您需要在32位環境中運行包,以便將項目的Run64BitRuntime屬性設置爲false。之後開始你的包裝。

+0

包是32位的。 – Ben