我的Excel連接管理器的文件路徑沒有被更新的變量通過傳遞的更新Foreach文件枚舉器。
功能要求:
我有我需要通過進口來迭代到SQL Server數據庫的目錄裏面一組Excel文件。
這些文件的第一個限制是其中一個列在每個單元格中最多有3000個字符(吹出標準的255個字符最大值)。
第二個限制是我有一個限制在這裏,我不能採取正常的路徑和更新註冊表來採樣更多的行(我通常會創建一個初始幾行的初始文件具有3000個字符的列)。
解決構想:
原型: 爲了對抗> 255字符細胞和編輯我選擇使用腳本任務它充分利用了Excel連接註冊表的禁令。 參考:
https://egilhansen.com/2015/07/28/ssis-solution-excel-data-source-text-truncation-column-more-than-255-characters/
我有一個單一的數據流任務導入使用該腳本的工作一個文件,所以劇本的聲音。
FYI,數據流的任務僅具有3在它的數據流項目: 1)腳本任務攝取的excel文件 2)派生列,在所列舉的filstring 3)一個OLE DB加載添加內容這些到一個數據庫
所有文件夾中的解決方案文件:
我再建立起一個foreach循環容器和複製的腳本任務到它。
我配置了Excel連接的表達式的屬性,使其具有文件路徑的屬性,並將文件名變量映射到foreach文件枚舉器映射到的文件變量。
最後,我在流控任務,Excel連接和Excel連接管理器的屬性上設置了Delayvalidation。
旁註:在Foreach File枚舉器中,派生列實際上正確地在枚舉的文件名中添加了正確 - >它只是不更新的excel連接字符串。
結束語: 我把改變excel文件表達式變成一個ConnetionString並添加到另一個變量和腳本任務來改變它在foreach循環內(利用枚舉文件變量),但ConnetionString變量isn'更新......我現在想知道是否需要在現有的foreach循環中嵌套一個foreach循環容器來更新excel連接字符串變量,然後繼續執行主腳本
我也看了一堆關於如何在excel文件的文件夾中使用foreach文件循環的指導博客: – Minniman
例如https://mikedavissql.com/2013/09/16/loop-通過excel-files-in-ssis/ – Minniman
區別在於我使用的腳本任務連接到Excel連接管理器連接而不是Excel數據流源 – Minniman