SSIS для контейнера цикла с переменной даты - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу создать ежемесячный пакет, который выполняет ежедневный запрос в ODBC и записывает выходной файл.

Точнее говоря, сначала запрос должен быть выполнен для первого дня предыдущего месяца (e.g. '01/11/2018'), а затем следующего ('02/11/2018') до последнего дня предыдущего месяца ('30/11/2018').

Переменные даты в настоящее время сохраняются как строки, и я также хочу иметь строковую переменную с форматом даты Oracle для вставки в запрос.Как это должно быть организовано?Можно ли использовать строковые переменные в выражениях?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Разбейте его на части следующим образом:

  1. Объявите переменные для хранения даты начала и окончания предыдущего месяца следующим образом:

start_date (datetime) = (DT_DATE)((DT_WSTR,4)YEAR(DATEADD("MM",-1,GETDATE()))+"-"+RIGHT("0"+(DT_WSTR,2)MONTH(DATEADD("MM",-1,GETDATE())),2)+"-01")

дата окончания (дата / время) = DATEADD("D", -(DAY(GETDATE())),GETDATE())

Объявить переменную Counter(datetime)

Создать For loop container следующим образом:

img

Остальная часть задачи потока данных должна быть в контейнере цикла For, который создаст выходной файл.Вы можете использовать переменную Counter в SQL для ее параметризации
0 голосов
/ 03 декабря 2018

На самом деле я понял, что все, что я хотел использовать в своем цикле, это дневная часть даты, поэтому я создал две дополнительные переменные типа int, которые содержат: 1) первый день месяца (1) 2) последнийдень месяца (28,30,31) Я использовал эти две переменные в For Loop Expressions и преобразовал индекс в строку, чтобы добавить его в запрос.Возможно, будет лучший путь, и это будет приветствоваться.

...