【问题标题】:Are all of the Oracle exceptions named?是否命名了所有 Oracle 异常?
【发布时间】:2013-10-23 15:49:56
【问题描述】:

特别是,我一直在尝试查找 ORA-0955 的名称以提高代码的可读性。

目前我正在使用以下内容:

EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE = -00955

我更喜欢这样的:

EXCEPTION
  WHEN OBJECT_EXISTS THEN

这对我来说似乎更干净,我更喜欢这样。但是我查看了 SYS.STANDARD,它列出了相对较少的命名异常。在线文档似乎反映了 SYS.STANDARD 中的内容。有没有其他的包可以看?其他资源?

【问题讨论】:

    标签: oracle exception plsql


    【解决方案1】:

    不,并非所有 Oracle 异常都有预定义的名称。 exception_init pragma 可用于将名称与异常代码相关联:

    create table tb_1(
      col number
    );
    
    set serveroutput on;
    
    declare
      not_unique_object_name exception;
      pragma exception_init(not_unique_object_name, -955);
    begin
      execute immediate 'create table tb_1(col number)';
    exception
      when not_unique_object_name then
         dbms_output.put_line('Not unique object name');
    end;
    
    anonymous block completed
    Not unique object name
    

    Find out 更多关于 exception_init 编译指示。

    【讨论】:

    • 谢谢,我搜索了几个小时,但没有看到任何迹象表明没有名字。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多