#!/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/$eval_pass@$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
我正在输入尝试强制此脚本失败的垃圾值.但是,令人烦恼的是,它不间断地提到任何错误代码.这里还需要做些什么?
马克斯说的是正确的.尝试这个修改的脚本
#!/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/$eval_pass@$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
请注意使用sql_return_code来捕获SQLPLUS返回码.
DBMS_OUTPUT语句应该失败,并出现错误 – “SP2-0734:unknown命令开始…”.您可以在日志文件中找到错误消息.
可以使用错误记录工具捕获SQLPLUS 11g中的sp2错误.请查看http://tkyte.blogspot.co.uk/2010/04/new-thing-about-sqlplus.html了解更多信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。