-1
我在shell腳本中使用sqlplus,我使用WHENEVER SQLERROR EXIT 8
和WHENEVER OSERROR EXIT 9
,以便我可以使用$?
捕獲錯誤。在bash腳本中忽略sqlplus中的ORA-28011
我將把這段代碼放在一臺服務器上,我知道密碼到期警告/錯誤'ORA-28011'。
我的問題是,我的腳本是否會出現'ORA-28011',即使它不是一個真正的錯誤?如果是這樣,我怎麼會忽略它呢?
我(簡化)代碼,如果它可以幫助:
[...]
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
把你的用戶名/密碼在一個安全的文件,並使用@文件名進行連接,而不是退出,你可以把一個case語句,而忽略ORA-28011 – michael501 2015-03-30 22:04:30