Сохранение даты из плоского файла в переменную (SSIS)

У меня есть плоский файл со многими столбцами, один из которых Date. Формат следующий: «25.01.2016». У меня много строк, и для каждой строки дата одинакова («25.01.2016»). Плоский файл перезаписывается каждый день, поэтому дата меняется каждый день.

Я создал dataflow для перемещения данных из txt в database table. Теперь я хочу добавить Send Mail Task, и в теме я хочу использовать эту дату (например, продажи за 25.01.2016). По этой причине мне нужно сохранить эту дату в переменной. Как я могу это сделать?


person rakamakafo    schedule 09.02.2016    source источник
comment
Возможный дубликат переменной установки SSIS во время выполнения   -  person Tab Alleman    schedule 09.02.2016
comment
@TabAlleman, что вы находите общего между этими двумя вопросами?   -  person rakamakafo    schedule 09.02.2016
comment
Все ответы на этот вопрос могут быть использованы для решения вашей проблемы. Лично я бы использовал третий (выполнение задачи SQL).   -  person Tab Alleman    schedule 09.02.2016


Ответы (1)


предположим, что ваш файл имеет формат, как показано ниже

id    | product     |  dateLoad
1     |  dell       | 25-01-2016 16:23:14 
2     |  hp         | 25-01-2016 16:23:15 
3     |  lenovo     | 25-01-2016 16:23:16

лучше всего сохранить некоторый текст в переменной: используйте задачу-скрипт

  • Сначала создайте новую переменную внутри вашего пакета, в моем случае я создал ее и назвал DATEVAR, тип данных переменной — String

- Во-вторых, добавьте новый компонент под названием Задание сценария, см. рисунок ниже.

Задание сценария

- В-третьих, мы добавим некоторый код в Script Task.

  • Щелкните Задание сценария и выберите свою переменную. В моем случае имя моей переменной DATEVAR. См. рисунок ниже.

введите здесь описание изображения

  • Затем нажмите «Редактировать скрипт» рядом с основным методом и добавьте код, как показано ниже.

String path =@"Назначение вашего файла ";

using (StreamReader sr = new StreamReader(path))
{
  String line;
  String[] sp;
  for (int i = 1; i <=2; i++)
  {
      line = sr.ReadLine();
      sp=line.Split('|'); 
      Dts.Variables["User::DATEVAR"].Value = sp[2]; 
  }
}
Dts.TaskResult = (int)ScriptResults.Success;

Более подробную информацию см. на картинке ниже

введите здесь описание изображения

person download dowload    schedule 09.02.2016
comment
спасибо за ответы с подробными пояснениями. Извините, если мои вопросы кажутся простыми, но я только изучаю эту SSIS. Я проголосовал за некоторые ваши посты, меньшее, что я могу для вас сделать)) - person rakamakafo; 09.02.2016