Мне нужно выполнить инкрементное извлечение с помощью SSIS. Мой сценарий примерно такой: мне нужно найти максимум даты и времени из моей таблицы и сохранить его в переменной, которую я использую в условии where моего источника OLE DB. Я использую преобразование Script Component для обновления моей переменной. Проблема в том, что максимальное значение присваивается переменной во время выполнения, но когда я пытаюсь выполнить ее снова, переменной присваивается значение по умолчанию, которое я предоставил. Как сделать значение переменной постоянным?
Как сохранить значение переменной в SSIS?
Ответы (1)
Вместо использования компонента сценария, не могли бы вы сначала использовать задачу «Выполнение SQL»?
В задаче SQL на вкладке «Общие» вы определяете свое соединение, а затем свой SQLStatement, который получает максимальную дату. И вы устанавливаете ResultSet на «Одна строка».
Затем на вкладке Result Set сопоставьте результат с уже имеющейся у вас переменной.
Как присвоить значение переменной с задачей SQL
person
Rupal
schedule
11.10.2013
Я также пытался использовать это, но если я снова выполню пакет без какой-либо новой вставки в свой источник, то последняя запись все равно будет вставлена в мою цель, которая уже была вставлена.
- person Yousuf Sultan; 11.10.2013
Я не уверен, что следую. Насколько я понимаю, вы хотите извлечь из таблицы A в B, где вы получаете только строки в A, превышающие максимальную дату в B. Итак, в моем случае я бы, как упоминалось выше, найти максимальную дату в B, а затем сохранить в переменной in, а затем извлечь из A, где дата › @maxDate. При каждом запуске код должен получать максимальную дату. Может я не понимаю всей темы..
- person Rupal; 11.10.2013
На самом деле вся проблема в инкрементном извлечении. Мне нужно получить только новые записи из исходной таблицы на основе столбца даты, который у меня есть в моем источнике.
- person Yousuf Sultan; 11.10.2013
Почему бы вместо этого не использовать последнюю дату из назначения для поэтапного извлечения из источника?
- person Rupal; 14.10.2013
Я могу это сделать. Это не проблема, но я хочу использовать переменную и обновлять ее при каждом выполнении. Я хочу получить эту последнюю дату и присвоить ее переменной.
- person Yousuf Sultan; 15.10.2013
Насколько я понимаю, это именно то, что я пытался описать в исходном ответе... (Добавил ссылку на пошаговые инструкции)
- person Rupal; 15.10.2013
Привет, Рупал... Спасибо за ссылку... Я реализовал точно такую же процедуру... но я не понимаю, где я ошибаюсь.... У меня это не работает...
- person Yousuf Sultan; 17.10.2013
Можете ли вы добавить скриншот вашего конфига?
- person Rupal; 17.10.2013