Чтобы зафиксировать ошибку при выполнении Sybase IQ SQL с использованием dbisqlc внутри оболочки ksh, скрипт

У меня есть сценарий оболочки, как показано ниже, через который я подключаю Sybase IQ через dbisqlc.

Я хотел бы захватить, если есть ошибка, любая ошибка возникает во время выполнения скрипта. Я закодировал как ниже. Но несмотря на то, что при выполнении SQL-кода происходит сбой, счетчик возврата всегда равен 0.

dbisqlc -c "uid=UID;pwd=PWD;eng=DEV;links=tcpip(host=XXXX;port=XXX)" -q   Query.sql  OutputDumpFile   
RC=`echo $?`
if [ $RC != 0 ]
then
    echo "ERROR: Error in DB Query Execution"
fi

Помогите пожалуйста как перехватить ошибку SQL в UNIX для Sybase IQ

1 ответ

Решение

Согласно этой документации, dbisql рекомендуется более dbisqlc:

Рекомендуется по возможности использовать утилиту Interactive SQL (доступ к которой осуществляется с помощью команды dbisql или путем выбора Пуск "Программы" SQL Anywhere 11 "Interactive SQL), поскольку утилита dbisqlc поддерживает не все функции, которые делает Interactive SQL.

Это говорит:

Только утилита dbisql может предоставить коды выхода из сценария SQL.

Исходя из этого, мне кажется, что dbisqlc не передает информацию через коды выхода.

Другие вопросы по тегам