#!/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
$ORACLE_HOME/bin/sqlplus -s /nolog <<-EOF>> ${LOGFILE}
connect $eval_user/[email protected]$db_name
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT SQL.SQLCODE;
DBMS_OUTPUT.put_line('Connected to db');
EOF
if [ $? != 0 ]
then
echo "The upgrade script failed. Please refer to the log results.txt for more information"
echo "Error code $?"
exit 0;
fi
Podaję wartości śmieci, próbując wymusić niepowodzenie tego skryptu. Ale, co jest irytujące, wciąż idzie naprzód, nie wspominając o żadnym kodzie błędu. Co jeszcze trzeba tu zrobić?Zarządzanie obsługą błędów podczas uruchamiania sqlplus ze skryptów powłoki
Które konto użytkownika OS jest uruchomione? Z jaką bazą danych loguje się skrypt? – APC
Próbowałem Twojego skryptu, a plik dziennika przechwytuje kod błędu. Oto chwycenie z pliku dziennika: 'BŁĄD: ORA-01017: nieprawidłowa nazwa użytkownika/hasło; logon denied SP2-0734: nieznane polecenie zaczynające się "DBMS_OUTPU ..." - reszta linii zignorowana. " – Incognito
Czy mogę wiedzieć, co dostajesz do pliku logu po uruchomieniu skryptu? – Incognito