2013-11-01 46 views
1

我試圖從駐留在單個文件夾中的多個電子表格中提取數據,然後將所有數據與列標題一起放入單個csv文件。如何截斷然後附加到SSIS中的RAW文件

我有一個foreach循環容器設置來遍歷文件夾中的每個文件名,然後將這些數據附加到一個RAW文件,但很多似乎遇到,似乎並沒有內置選項,它允許在進入循環容器之前簡單地截斷RAW文件。

Jamie Thompson在他的博客here中描述了類似的情況,但指向示例的鏈接似乎不起作用。有沒有人有一個簡單的方法來在進入foreach循環之前在獨立步驟中截斷RAW文件?

回答

2

我總是使用的方法是創建一個具有適當元數據格式但沒有實際行的數據流,並將其路由到設置爲新建的RAW文件。

在我現有的數據流中,我查看了填充RAW文件的元數據,然後創建了一個模仿它的select語句。

例如

SELECT 
    CAST(NULL AS varchar(70)) AS AddressLine1 
, CAST(NULL AS bigint) AS SomeBigInt 
, CAST(NULL AS nvarchar(max)) AS PerformanceLOL 
+0

有沒有辦法做到沒有數據庫連接,但?現在,它只需要從Excel中獲取數據並將其轉儲爲CSV,而不需要SQL Server連接。 – crosan

+0

我讀過這篇文章http://rolandholtermann.wordpress.com/2012/03/17/append-data-to-a-raw-file-using-a-for-each-loop-container-in-ssis /那種談論你描述比爾的方式,但是希望不需要將數據連接到數據庫中。 – crosan

+0

您可以構建一個自定義腳本任務來生成必要的輸出。 –

1

這裏就是我會做的事:

  • 讓您最初的原始文件
  • 作出這樣的原始文件的副本
  • 使用文件任務,以取代臨時文件之初你的包/工作每次。

在我的使用案例中,我有20個foreach線程同時寫入自己的文件。沒有線程調用線程之前創建,然後追加,所以你只是「重新」複製了一個已經分配的元數據的「空」的原始文件,:

enter image description here