Oracle
 sql >> база данни >  >> RDS >> Oracle

Управление на обработката на грешки при изпълнение на sqlplus от скриптове на обвивката

Това, което казва Макс, е вярно. Опитайте този модифициран скрипт

#!/bin/sh

echo "Please enter evaluate database username"
read eval_user
echo "Please enter evaluate database password"
read eval_pass
echo "Please enter the database name"
read db_name

LOGFILE=shell_log.txt

sqlplus -s /nolog <<-EOF>> ${LOGFILE}
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT SQL.SQLCODE;
connect $eval_user/[email protected]$db_name
DBMS_OUTPUT.put_line('Connected to db');
EOF

sql_return_code=$?

if [ $sql_return_code != 0 ]
then
echo "The upgrade script failed. Please refer to the log results.txt for more information"
echo "Error code $sql_return_code"
exit 0;
fi

Моля, обърнете внимание на използването на sql_return_code за улавяне на кода за връщане на SQLPLUS.

Инструкцията DBMS_OUTPUT трябва да се провали с грешка - "SP2-0734:неизвестна команда започва...". Можете да намерите съобщението за грешка в регистрационния файл.

Възможно е да се хванат sp2 грешките в SQLPLUS 11g с помощта на средството за регистриране на грешки. Моля, разгледайте http://tkyte.blogspot.co.uk/2010/04/new-thing-about-sqlplus.html за повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да се убие една заявка в oracle, без да се убива сесията?

  2. Oracle SQL Developer - Как да възстановите изпусната таблица

  3. Как да форматирате числа в научна нотация в Oracle

  4. Как да създадете спул файл на sql sql

  5. Методи за настройка на NLS параметри и техните приоритети (база данни на Oracle)