2012-10-17 54 views
1

我試圖從我的數據庫加載數據到一個標準模板的excel文件。該軟件包已準備好並且正在運行,並引發了一些驗證警告,指出可能會發生截斷,因爲我的模板的字段比我匹配的DB字段的字段略小。SSIS包沒有填充任何結果

但是,沒有數據填充到我的Excel表單中。 沒有錯誤報告,當我點擊我的OLE DB源的預覽時,它顯示了結果行。這些都沒有被填充到我的Excel表中。

+0

當它調試時,Excel目標任務變紅,而其他一切似乎都很好。 0錯誤,2截斷警告 – Vivek

+0

我的數據缺陷有一個數據庫源,數據轉換和Excel目標...前兩個罰款......這是最終的Excel目標,拋出2個警告,但仍然沒有填充任何數據 – Vivek

+0

[Excel目標[22]]錯誤:SSIS錯誤代碼DTS_E_OLEDBERROR。發生了OLE DB錯誤。錯誤代碼:0x80040E21。 [Excel目標[22]]錯誤:無法創建OLE DB訪問器。驗證列元數據是否有效。 [SSIS.Pipeline]錯誤:組件「Excel Destination」(22)未執行預執行階段並返回錯誤代碼0xC0202025。 – Vivek

回答

0

夫婦的問題,這可能會導致一個答案:

  1. 是否檢查數據實際上是在運行時通過SSIS包通過呢?
  2. 你仔細檢查了你的映射嗎?
  3. 嘗試包內的轉換,所以你不必截斷問題

做,如果你添加你正在運行什麼,我或許可以給你一個更好的答案一些更多的細節。

編輯:考慮你在你的評論中寫了什麼,我敢肯定地嘗試第三種選擇。讓我們知道這是否解決不了問題。

+0

我已經在源和目標之間添加了數據轉換步驟。它將我的db字符串列轉換爲unicode字符串,因此在寫入我的目標excel時,我不會遇到任何轉換問題 – Vivek

0

你不提供很多信息。在你的源代碼和你的excel目標之間添加一個數據視圖來查看數據是否通過。做到這一點,只需雙擊數據流路徑,選擇數據視圖,然後添加一個網格。

運行您的應用程序。如果您看到數據,請提供更多詳細信息,以便我們爲您提供幫助

5

您應該首先確保數據通過管道傳輸。在將源任務連接到目標任務的箭頭中(我假設你之間沒有任何步驟),雙擊並打開數據流路徑編輯器。單擊數據查看器,然後單擊添加,然後單擊確定。這將讓你看到什麼是通過管道。

enter image description here

要考慮的事情與Excel是喜歡Unicode數據類型,以非Unicode。很可能您的數據庫歸類爲非Unicode,因此您可能必須轉換數據轉換任務中的值。

enter image description here

enter image description here

此外,您可能需要強制包32位運行時執行。 VS應用程序在32位環境下開發,因此您可以看到的驅動程序是32位。如果沒有64位等價物,當您嘗試運行包時它會中斷。右鍵單擊您的項目,然後單擊「屬性」,然後在「調試」菜單下,您需要將設置Run64BitRuntime更改爲FALSE。

enter image description here

0

只是作爲一個輔助爲別人運行到這一點 - 我也有類似的問題,靠牆打我的頭很長一段時間我才發現了事情的原委。我的導出文件將數據寫入文件,但是因爲我使用的是模板文件作爲目標文件,並且該模板文件之前的數據已被刪除,所以該過程會在之前使用的行之後附加數據。因此,例如,我寫了三行數據,但數據直到344行纔開始。

解決方案是選擇我的模板文件中的整個電子表格,並刪除它的每一個位,以便我有一個完全乾淨的工作表開始。然後我將我的標題行添加到乾淨的表單中並保存。然後我運行了數據流任務,並且... ta-daa !!!完美出口!

希望這會幫助一些在未來遇到同樣問題的可憐的靈魂!