sqlplus執行指令碼時遇到錯誤自動停止

czxin788發表於2021-05-29

    當一個指令碼中存在大量的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



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2774514/,如需轉載,請註明出處,否則將追究法律責任。

相關文章