2008-11-13 46 views
0

我有一個SSIS包,需要查找兩種不同類型的Excel文件,類型A和類型B,並將數據加載到兩個不同的登臺表tableA和tableB。這些Excel表格的格式不同,它們與各自的表格匹配。如何選擇性加載Excel文件?

爲了簡單起見,我曾考慮將typeA.xls和typeB.xls放在兩個不同的文件夾中(文件夾路徑可以配置)。然後通過其他應用程序或手動將所需的Excel文件放入此處。

我想要的是能夠讓我的dtsx包掃描文件夾並選取最新的未處理文件並加載它忽略其他文件,然後使用'-loaded'(typeAxxxxxx-loaded.xls)後綴文件名。文件名中的「已加載」是我計劃如何區分已加載的文件和尚未加載的文件。

我需要建議:

a)如何檢查配置文件夾中的最新文件即。在文件名中沒有'-loaded'並加載它? ..然後在加載它後,使用後綴「-loaded」重命名該配置文件夾中的相同文件。

b)這是做這個最好的方法還是有更好的方法?

謝謝。

回答

1

你可以這樣做,但它可能需要幾個複雜的字符串表達式。

E.g.通過.xls文件創建一個ForEach循環,在循環內部添加一個空腳本任務,然後通過數據流來加載該文件。用優先約束連接它們並使其成爲條件:優先約束表達式將檢查文件名是否以-loaded.xls結尾。你可以在腳本任務中完成它,或者在優先約束上純粹使用SSIS表達式。最後,添加文件系統任務來重命名文件。您可能需要用另一個表達式構建新的文件名。

創建兩個文件夾可能會更簡單:針對新的未處理文件傳入併爲您已處理的文件裝載,並且只需將處理後的.xls移動到此文件夾而無需重命名。這將避免第一個條件表達式(和虛擬腳本任務),並簡化文件系統任務的配置。

0

您可以獲取SQL File觀察器任務並將其添加到您的SSIS。我認爲這是一種更乾淨的方式來做你想做的事。

SQL File Watcher