SSIS 的 Foreach Loop 會將 3 個字以上的附檔名弄錯

俊宇提醒 SQL Server 2005 SSIS 的 Foreach Loop 會將 3 個字以上的附檔名弄錯,經測試,果然如此

image

結果 *.txt* 都會符合 目瞪口呆

但這不是什麼大問題,我直覺的解法如下,或許不完善,但還蠻簡單的:

image

在真正要工作的 Task 加一個 Script Task,透過 script task 取得副檔名長度,再以 Prededence Constraint 來決定是否要執行該迴圈原本要執行的邏輯

Script Task 的設定如下:

image

透過 VB.NET 取得副檔名長度:

Dts.Variables("i").Value = Dts.Variables("strFile").Value.ToString().Length – Dts.Variables("strFile").Value.ToString().LastIndexOf(".") – 1

而後透過 Precedence Constraint 來限制真正要執行的 Task 是否在該次檔案動作

image

謝謝俊宇的提醒微笑

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: