Я использую сценарий PowerShell для запуска файла sql с помощью SnowSQL. Моя идея состоит в том, чтобы использовать сценарий PowerShell в качестве общей оболочки для запуска различных файлов sql с разными входными параметрами, выполняемых из заданий, запланированных в планировщике предприятия.
Ниже приведен фрагмент файла сценария PowerShell:
$Command = '&"C:\Program Files\Snowflake SnowSQL\snowsql.exe"' + ' --config "' + $ConfigFilePath + '" --filename "' + $sFilePath + '\' + $sFileName + '.sql"' + $sParams
Invoke-Expression -Command $Command
Файл sql, выполняемый через Snowsql, содержит несколько пакетных операторов. Мой вопрос в том, как я могу записать код возврата из выполнения файла. В частности, код ошибки, даже если сбой хотя бы одного из пакетных операторов внутри sql-файла (а не только статус последнего пакетного оператора в sql-файле).
Я нашел ниже из вопросов сообщества Snowflake. Но когда я использую его после строки Invoke-Expression в сценарии PowerShell, все, что я получаю, - это строка, напечатанная как есть.
эхо% errorlevel%
Пожалуйста помоги.
ИЗМЕНИТЬ 9/11/2020 Я узнал, что эквивалент% errorlevel% в PowerShell равен $ ?. Итак, я добавил $? после строки Invoke-Expression в моем файле сценария PowerShell. Но он всегда возвращает TRUE (что означает успех), даже если сценарий snowsql завершается с ошибкой.
Есть мысли, пожалуйста?
Спасибо. Шрини Силам