2012-09-04 3 views
0

Я хочу импортировать последний файл csv в таблицу с помощью SSIS? Я в настоящее время есть шаг, который получает последний файл в папке:Импортировать последний файл csv в папку - SSIS

Report_201209030655.csv 
Report_201209030655.csv 
Report_201209030655.csv 

На основе созданного времени я хочу шаги, чтобы импортировать данные из последней CSV в таблицу.

+0

Can't вы просто переместить старые/уже обработанные файлы в отдельную папку? Я считаю, что это самый распространенный подход в 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

Да, но в исходном шаге файлового файла, упомянутом Pinal .... мы для указания имени файла. В случае, когда я указал, имя файла будет меняться каждую минуту. Также, где я использую компонент скрипта? – Gallop

Смежные вопросы