sql >> Databáze >  >> RDS >> Oracle

Správa zpracování chyb při spouštění sqlplus ze skriptů shellu

To, co říká Max, je pravda. Zkuste tento upravený skript

#!/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

Všimněte si prosím použití sql_return_code k zachycení návratového kódu SQLPLUS.

Příkaz DBMS_OUTPUT by měl selhat s chybou - "SP2-0734:začátek neznámého příkazu...". Chybovou zprávu naleznete v souboru protokolu.

Je možné zachytit chyby sp2 v SQLPLUS 11g pomocí zařízení pro protokolování chyb. Pro více informací se prosím podívejte na http://tkyte.blogspot.co.uk/2010/04/new-thing-about-sqlplus.html.



  1. Jak nainstalovat nejnovější MySQL 8 na Debian 10

  2. Příkaz PRINT v T-SQL

  3. Kdy nebo proč použít SET DEFINE OFF v databázi Oracle

  4. Chyba PostgreSQL:Vztah již existuje