Oracle SQL Developer:如果出现错误,则停止脚本运行

Giu*_*ppe 4 sql oracle error-handling oracle-sqldeveloper

SQL Developer 的默认行为是即使遇到错误也继续运行脚本中的后续命令。是否可以让它停止,或者询问用户是否继续(例如,像在 SQL Workbench 中一样)?

Chr*_*xon 6

SQL Developer 支持 SQL*Plus 命令whenever sqlerrorwhenever oserror.

这些允许您在脚本遇到问题时停止处理。

例如,如果我运行这个:

select * from dual
where  ;

select * from dual;

whenever sqlerror exit
whenever oserror exit

select * from dual
where  ;

select * from dual;
Run Code Online (Sandbox Code Playgroud)

输出是这样的(注意最终选择不会发生):

SQL> select * from dual
  2  where  ;

Error starting at line : 2 in command -
select * from dual
where  
Error at Command Line : 3 Column : 7
Error report -
SQL Error: ORA-00936: missing expression
00936. 00000 -  "missing expression"
*Cause:    
*Action:
SQL> 
SQL> select * from dual;
DUMMY   
X        


SQL> 
SQL> whenever sqlerror exit
SQL> whenever oserror exit
SQL> 
SQL> select * from dual
  2  where  ;

Error starting at line : 10 in command -
select * from dual
where  
Error at Command Line : 11 Column : 7
Error report -
SQL Error: ORA-00936: missing expression
00936. 00000 -  "missing expression"
*Cause:    
*Action:
Run Code Online (Sandbox Code Playgroud)