Ошибка сценарий оболочки, если МН сбои программы / сбои программы SQL

Ради полноты Matrox имеет довольно обширное и долгое присутствие на Linux.

1
21.11.2018, 00:46
1 ответ

Во-первых, необходимо получить SQL*Plus к ошибке, если ошибка SQL происходит. Можно сделать это путем добавления:

WHENEVER SQLERROR EXIT FAILURE

к Вашему сценарию SQL (вероятно, вершина). Можно также дать различные коды (маленькие неотрицательные целые числа; ненулевой = отказ) вместо слова FAILURE.

Они возвратятся к Вашему сценарию оболочки в $?. Таким образом, у Вас может затем быть свой сценарий оболочки, реагируют на него. В целом это выглядело бы примерно так:

sqlplus -s <<EOF
$v_fcp_login
set head off feed off serverout on size 1000000
WHENEVER SQLERROR EXIT FAILURE
exec XXIRIS_TEST_K.XXIRIS_TEST('$v_1',$v_2,$v_3,'$v_4',$v_5);
exit
EOF
if [ 0 -ne "$?" ]; then
    echo "Stored proc blew up." >&2
    exit 1
fi

Конечно, можно использовать различные коды выхода для указания на разные вещи (например, при вызове нескольких хранимых процедур Вы могли бы выйти 1 для первого аварийного завершения, выйти 2 для второго, и т.д.),

1
27.01.2020, 23:53

Теги

Похожие вопросы