当一个脚本中存在大量的sql/plsql语句时,执行该脚本时,如果其中有一条sql语句执行失败,用sqlplus可能很难发现。 如果能让碰到错误时,让sql*plus退出,再结合spool命令查看日志, 就很容易知道脚本的执行情况。这可以通过whenever命令来实现。
SQL>whenever sqlerror exit rollback
一旦脚本中该语句之后的某sql语句执行出错,就会停止出错,sql*plus就会自动退出。 加了rollback选项,则出错后,sql*plus在退出前,会自动执行rollback一下;如果加了none选项或什么都不加, 则退出不会做任何事,但实际上默认设置下sql*plus在退出前会commit一下,所以这种情况与加了commit选项效果一样。
例:***test.sql*** SQL>spool e:\test.txt SQL>whenever sqlerror exit rollback SQL>select * from test1233; SQL>select * from dual; SQL>spool off
