Ошибка при запуске скрипта PL / SQL

В сценарии оболочки я вызываю хранимую процедуру PL / SQL.

sqlplus -s <<EOF $v_fcp_login set head off feed off serverout on size 1000000 exec XXIRIS_TEST_K.XXIRIS_TEST('$v_1',$v_2,$v_3,'$v_4',$v_5); exit EOF 

Но когда в блоке PL / SQL есть ошибка, мне нужно обнулить скрипт оболочки, который работает как параллельная программа для хоста в Oracle, но это не так.

Я новичок в сценарии оболочки, и любая помощь действительно ценится.

One Solution collect form web for “Ошибка при запуске скрипта PL / SQL”

Во-первых, вам нужно получить 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 для второго и т. Д.),

  • Как я могу получить SQL-запросы для отображения в выходном файле?
  • Вставить в таблицу Oracle в цикле
  • Удаление специальных символов в текстовом файле
  • Исключение переменных bash перед их сохранением в базе данных hive apache
  • Передача нескольких varibles скрипту для SQL-запроса
  • Ошибка переменной типа?
  • vim: Синтаксис синтаксиса с помощью аргумента командной строки
  • Добавление разрывов между каждыми двумя словами в bash
  • Awk one-liner для печати столбца таблицы SQL?
  • Сценарий Bash - части chomp из строки
  • Как распечатать CSV / таблицу из результатов SQuirreL?
  • Linux и Unix - лучшая ОС в мире.