2012-09-04 90 views
0

我要最新的CSV文件導入使用SSIS表?我現在有一個步驟中得到的最後一個文件夾中:基於創建時間我想措施的最新CSV的數據導入到表導入最新的csv文件 - SSIS

Report_201209030655.csv 
Report_201209030655.csv 
Report_201209030655.csv 

+0

不能老是你只需動年長/已處理的文件,以單獨的文件夾?我相信這是ETL中最常用的方法。 – kyooryu

+0

這一步之前,我其實和重命名文件移動到一個新的文件夾 – Gallop

回答

0

參考此解決方案:

[http://blog.sqlauthority.com/2011/05/12/sql-server-import-csv-file-into-database-table-using-ssis/][1] 

然後使用腳本任務來填充文件名,並通過該變量作爲源組件文件名。

獲取最新的文件代碼:

public void Main() 
     { 
      string[] files = System.IO.Directory.GetFiles(@"C:\SSIS\Files"); 
      DataTable NewList=new DataTable(); 
      DataColumn col = new DataColumn("FileName"); 
      NewList.Columns.Add(col); 

      System.IO.FileInfo finf; 
      foreach (string f in files) 
      { 
       finf = new System.IO.FileInfo(f); 
       if (finf.LastWriteTime > DateTime.Now.AddHours(-24)) 
       { 
        NewList.Rows.Add(f); 
       } 
      } 
      Dts.Variables["User::FileNameArray"].Value = NewList; 

      Dts.TaskResult = (int)ScriptResults.Success; 
     } 
+0

能否請您更加清晰與步驟 – Gallop

+0

檢查我張貼 – AnandPhadke

+0

是鏈接,但在由皮納爾提到的平面文件源步驟....我們指定文件名。在指定文件名的情況下,每分鐘都會更改。還有,我在哪裏使用腳本組件? – Gallop