如何捕获Oracle异常"ORA-06535:OPEN中的语句字符串是NULL还是0长度"?

Aki*_*a91 2 oracle plsql

我想捕获异常的特殊异常"ORA-06535:OPEN中的语句字符串是NULL或0长度"

但无法弄清楚它的确切"异常名称".请注意我不想在通用的其他异常块下捕获它.

EXCEPTION
   WHEN <exception_name1> 
   THEN 
      executable_statements;
   WHEN <exception_nameN> 
   THEN
      executable_statements;

   WHEN OTHERS 
   THEN
      executable_statements;
END;
Run Code Online (Sandbox Code Playgroud)

Haw*_*awk 8

一些例外具有诸如'TOO_MANY_ROWS'之类的名称.但是,大多数oracle异常都没有名称.因此,如果您想要捕获它们中的任何一个,您需要为它们命名.

对于您的例外,您可以执行以下操作:

DECLARE  
....  
NULL_STRING EXCEPTION;
PRAGMA
EXCEPTION_INIT(NULL_STRING, -06535);
....
Begin

......
EXCEPTION
WHEN NULL_STRING THEN
     executable_statements;
     ..... 
END;
Run Code Online (Sandbox Code Playgroud)