2014-03-18 103 views
1

我試圖創建臨時表並使用臨時表處理兩個數據流。它是在一個序列容器中,如果我只是執行容器它完美運行,但是當整個包跑了返回此錯誤:SSIS未通過驗證並返回驗證狀態「VS_ISBROKEN」

Information: 0x4004300A at V-AccidentCodesBase, SSIS.Pipeline: Validation phase is beginning.

Error: 0xC0202009 at V-AccidentCodesBase, Insert into Temp Table [69]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.

An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 Description: "Statement(s) could not be prepared.".

An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 Description: "Invalid object name '##TmpAccidentCode'.".

Error: 0xC004706B at V-AccidentCodesBase, SSIS.Pipeline: "Insert into Temp Table" failed validation and returned validation status "VS_ISBROKEN".

Error: 0xC004700C at V-AccidentCodesBase, SSIS.Pipeline: One or more component failed validation.

Error: 0xC0024107 at V-AccidentCodesBase: There were errors during task validation.

+1

而您對問題的研究導致您執行了哪些操作? – billinkc

+0

你的工作是什麼樣子? –

+0

到目前爲止,我已完全聲明該表以排除它正在查找正確的數據庫並重新創建該包,因爲讀取了更改可能會破壞元數據。 – epelletier9740

回答

0

我最終解決了重載tempDB的問題。當我一次減緩一個命令到tempDb的過程時,它全部平穩地運行。

3

我的DelayValidation屬性設置爲True。您可能會在序列容器上設置它,或者您可能需要在子對象上重複該設置。您的數據流任務。

+0

+ 1感謝您節省我的時間 – Pramesh

0

我遇到了同樣的錯誤,在我的情況下,我使用SSIS將數據從excel文件導入到幾個表中。

我使用了2個不同的文件,它與一個失敗並與另一個工作,經過一些審查後,我發現我指的是包內的Excel表的名稱,所以Excel表必須命名爲(我認爲它是區分大小寫的),就像你在SSIS包中使用的一樣

1

正如其他人提到的那樣,錯誤可能由於不同的原因而發生。在我的情況下,我意識到我試圖在SSIS的Script部分中將一些NULL轉換爲int。例如:

ProductsBuffer.ProductId = Int64.Parse(reader["ProductId"].ToString()); 

所以修復很容易。我只是在轉換之前檢查了字段,以確保它不爲空:

if (reader["ProductId"] != DBNull.Value) 
      ProductsBuffer.ProductId = Int64.Parse(reader["ProductId"].ToString());