Я пытаюсь запустить пакет служб SSIS из командной строки, но получаю это
«ORA-00907: отсутствует правая скобка».
Пакет отлично работает с SSDT, и запрос, который я использую, также прост. Я пытаюсь передать значения в запрос во время выполнения.
Объявление переменной:
Мой запрос с использованием выражения:
"SELECT country_id, city_id, name FROM cities where instr('" + @[User::p_cityID] + "' || ',', city_id || ',') > " + @[User::p_count]
Окончательный запрос: (работает нормально)
SELECT country_id, city_id, name FROM cities where instr('DUBAI' || ',', city_id || ',') > 0
Пакетный звонок:
Begin
declare @p_cityId varchar(10) = 'DUBAI'
declare @p_count varchar(10) = '0'
declare @query varchar(4000) =
'"C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\DTExec.exe" /FILE C:\SSIS\pmtCity.dtsx /decrypt <mypass> /reporting V > C:\SSIS\log\citylog_'+
(replace(replace(replace(replace(convert(varchar(23), getdate(), 121),'-',''),':',''),' ',''),'.','')) +'.txt'
+ ' /SET \Package.Variables[p_cityID].Value;''' + @p_cityId + ''''
+ ' /SET \Package.Variables[p_count].Value;''' + @p_count + ''''
print @query
exec xp_cmdshell @query
End