Сохраненная процедура Sybase, вызываемая из isql в AIX:как обрабатывать код возврата
-
23-08-2019 - |
Вопрос
У меня есть пакетное задание AIX, которое использует isql для выполнения хранимой процедуры в Sybase.Хранимая процедура возвращает код ошибки при определенных условиях.Я хотел бы, чтобы isql передал этот код возврата сценарию AIX.
Могу ли я захватить код возврата хранимой процедуры в isql, или мне нужно написать какой-то выходной файл и проверить его в сценарии AIX?
Вот как выглядит команда isql.Он работает внутри сценария оболочки Korn.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
Решение
Если я правильно помню, то $?
установлено значение, возвращаемое командой.Добавьте что-то вроде этого после EOF
линия:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
Другие советы
Это то, чего вы хотели достичь?
isql -D$database -S$server -U$userId -P$password << EOF | grep RETVAL | awk -F"=" '{print $2}' | read value
declare @retval int
EXEC @retval = MY_STORED_PROC $AN_INPUT_PARAMETER
SELECT "RETVAL=" + convert(varchar, @retval)
go
EOF
echo "Procedure returned: $value"
Не связан с StackOverflow