特别是,我一直试图找到ORA-0955的名称来提高代码的可读性。
目前我正在使用以下内容:
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -00955
我更喜欢的是:
EXCEPTION
WHEN OBJECT_EXISTS THEN
这对我来说似乎更干净,我更喜欢这样。但我查看了SYS.STANDARD,它列出了相对较少的命名异常。在线文档似乎反映了SYS.STANDARD中的内容。还有其他包可以查看吗?其他一些资源?
答案 0 :(得分:6)
不,并非所有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
pragma的更多信息。