Sql-Server

SSIS 部署失敗 - 使用文件

  • August 22, 2018

我開發了一個簡單的 SSIS 包,它將打開一個 csv 文件,選擇一些列,添加兩個派生列,然後將結果復製到一個文件中。

這適用於我建構它的視覺工作室(即使它需要很長時間)。問題是當我嘗試將它部署到我們的 sql 伺服器時它失敗了。

它一直在說:

"The specified parameter value string is too long. The string must be no more than 8000 characters." 

但我不知道它在說什麼,因為我的專欄都沒有超過 1000 個字元。

關於此錯誤的資訊不多,但行數(400,000+)是否可能是問題的根源?

這不是您的數據的問題 - 這是您的包裹的問題。通常,這是查詢大小的問題。

似乎在內部,SSIS 在某個地方使用了 varchar(8000) 值,而該值實際上可以使用 varchar(max) 值。當你遇到這個限制時,你會得到這個模棱兩可的錯誤。

有幾種方法可以解決這個問題。您可以縮短查詢(通過刪除過多的空格、用製表符替換空格、壓縮縮進等)。

您還可以將查詢拆分為多個變數或參數,然後在執行查詢之前使用表達式任務將這些部分連接起來。

根據查詢,您還可以將其轉換為一個或多個儲存過程或視圖,並在您的包中呼叫它們。

但是,如果您將查詢保留在包中,則需要將其長度(或其片段的長度)減少到少於 8000 個字元。玩得開心。

玩得開心——沒有什麼比重構查詢更有趣的了。

引用自:https://dba.stackexchange.com/questions/213318