Я использую sqlplus в сценарии оболочки, и я использую WHENEVER SQLERROR EXIT 8
и WHENEVER OSERROR EXIT 9
, чтобы я мог ловить ошибки с использованием $?
.Игнорировать ORA-28011 в sqlplus в сценарии bash
Я буду помещать этот код на сервер, который, как я знаю, получает предупреждение об ошибке пароля «ORA-28011».
Мой вопрос в том, будет ли мой скрипт ловить «ORA-28011», хотя это не ошибка? Если да, то как я буду игнорировать это?
My (упрощенный) код, если это помогает:
[...]
CONNECTION_STRING=$USER/[email protected]$TNS
RESULT=$(sqlplus -s /nolog <<-EOF
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT 8;
$OPTIONS
CONNECT $CONNECTION_STRING
$DB_SQL
COMMIT;
EOF)
RETURN_CODE=$?
echo "db_exec: Result -> $RETURN_CODE\n$RESULT"
if [ $RETURN_CODE -eq 0 ]
then
echo "$RESULT"
return 0
else
echo "db_exec: Failed"
return 1
fi
кладет пользователь/пасс в защищенном файл и использовать @filename для подключения, вместо выхода вы можете поставить случай заявление и игнорировать ор-28011 – michael501