2010-01-05 70 views
0

我有一個SSIS包,需要通過一個oledb組件加載數據到一個表,該表的名字直到運行時才知道。在oledb目標編輯器中,我選擇了「數據訪問模式」作爲「表名或視圖名稱變量」。我輸入了我的「變量名稱」,它包含表格的名稱。當我點擊預覽按鈕時,會顯示正確表格的預覽。然而,當我嘗試運行/調試包我收到以下消息在審定階段 - 前包甚至試圖運行:SSIS設置目標表名稱

Information: 0x4004300A at Check Recs and Insert, DTS.Pipeline: Validation phase is beginning. 

Error: 0xC0202042 at Check Recs and Insert, Insert Into TransactionX table [2269]: A destination table name has not been provided. 
Error: 0xC004706B at Check Recs and Insert, DTS.Pipeline: "component "Insert Into TransactionX table" (2269)" failed validation and returned validation status "VS_ISBROKEN". 
Error: 0xC004700C at Check Recs and Insert, DTS.Pipeline: One or more component failed validation. 
Error: 0xC0024107 at Check Recs and Insert: There were errors during task validation. 
SSIS package "PointsPartnerImport.dtsx" finished: Failure. 

它說A destination table name has not been provided.但它有!有沒有人有類似的問題?

+0

您是否試過將延遲驗證屬性設置爲「TRUE」並運行包?因爲你的動態傳遞目標表。 – Gowdhaman008 2014-01-17 07:04:35

回答

0

你是否將變量設置爲默認值?檢查這篇文章:msdn thread

+0

我給了變量一個默認值。我的問題與msdn線程中給出的不一樣。在我的情況下,問題只出現在運行時。該變量填充在「控制流」中,但我已將範圍設置爲包的os,我猜它應該從「數據流」中可見? – 2010-01-08 10:21:24

+0

如果將範圍設置爲包級別,則應通過整個包控制流,數據流,事件處理程序等來識別變量中的值。也許嘗試從頭開始創建一個全新的包,並查看是否修復你的問題?我從來沒有遇到與過去一樣的事情...... – rfonn 2010-01-08 13:53:16

2

什麼編程格式的數據?今天我有一個類似的問題,試圖從Excel電子表格導入數據。事實證明,電子表格的名稱中有一個「(物理空白空間)」。 SSIS對此並不太高興。但是,無論出於何種原因,在我用_(下劃線)替換該空白之後,問題自行解決。至於爲什麼,我的猜測是某些字符通常應避免在諸如空格或連字符之類的標題中。除了出現類似錯誤(連字符?)的空格之外,可能還有字符。

0
  1. 確保變量名稱具有默認值,並且它與Excel工作簿中的第一個工作表名稱匹配。 SSIS需要在設計時加載第一個工作表,您不能跳過此驗證。
  2. 工作表名稱中的空格或特殊字符不會影響功能。