1

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

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

EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE = -00955

我更喜欢的是:

EXCEPTION
  WHEN OBJECT_EXISTS THEN

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

4

1 回答 1

6

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

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

了解更多关于exception_initpragma 的信息。

于 2013-10-23T15:56:13.410 回答