sql >> Databasteknik >  >> RDS >> Oracle

Hantera felhantering när du kör sqlplus från skalskript

Det Max säger är korrekt. Prova detta modifierade 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

Observera att sql_return_code används för att fånga SQLPLUS-returkoden.

DBMS_OUTPUT-satsen bör misslyckas med felet - "SP2-0734:okänt kommando börjar...". Du kan hitta felmeddelandet i loggfilen.

Det är möjligt att fånga sp2-felen i SQLPLUS 11g med hjälp av felloggningsfunktionen. Ta en titt på http://tkyte.blogspot.co.uk/2010/04/new-thing-about-sqlplus.html för mer information.



  1. Hur man ändrar automatiskt inkrementvärde för MySQL / MariaDB-databasen

  2. kopiera från en databas till en annan med Oracle sql-utvecklare - anslutningen misslyckades

  3. Hur infogar man en fil i MySQL-databasen?

  4. T-SQL tisdag #67:Nya utökade händelser för säkerhetskopiering och återställning