В VS-2017 я написал переменную с типом данных "строка".Эта переменная использует другую переменную, чтобы определить, с какого момента данные должны быть извлечены из базы данных.
Проблема в том, что выражение оценивается в VS успешно, пакет ssis может быть успешно выполнен, а сам запрос может быть выполнен в ssms.Когда пакет развертывается в ssms и выполняется по всему каталогу служб интеграции, пакет не работает.Пакет завершается с ошибкой в первом операторе 'or'
, которое я получаю из отчетов о выполнении:
"неправильный синтаксис рядом с оператором" или "".
Оцененное значение (правильный запрос sql) прекрасно работает при выполнении в ssms.Я пытался разместить пустую строку до или после оператора 'or'
, но не решил проблему.Я пытался заменить оператор 'or'
на 'and'
, не сработало.Выполненные без оператора 'where'
, пакеты работают как положено.В другом пакете я не смог продублировать ошибку
" select * from src where id >= "+ @[User::MaxIdStr] +" or id >= "+ @[User::MaxIdStr]
Кусок кода, в котором ошибка выглядит так:
where
[DateUpdated (CCUPMJ)] >= "+ @[User::Max_Upmj_Start] +"
or F0911.[DateUpdated (GLUPMJ)] >= " + @[User::Max_Upmj_Start]+"
or F560911T.[DateUpdated (GLUPMJ)] >= "+ @[User::Max_Upmj_Start]
В VS это оценивается как:
[DateUpdated (CCUPMJ)] >= 119121
or F0911.[DateUpdated (GLUPMJ)] >= 119121
or F560911T.[DateUpdated (GLUPMJ)] >= 119121
(значение переменной по умолчанию - 119121)
Ожидаемый результат должен быть успешно выполненным пакетом, фактический результат - неудачное выполнение.
Если кто-то знает, какрешить это я буду очень грациозно!