Сохраненная процедура Sybase, вызываемая из isql в AIX:как обрабатывать код возврата

StackOverflow https://stackoverflow.com/questions/888066

Вопрос

У меня есть пакетное задание 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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top