说我有一个插入一条记录表一个Oracle PL/SQL块,需要从一个独特的约束错误恢复,就像这样:如何捕获PL/SQL块中的唯一约束错误?
begin
insert into some_table ('some', 'values');
exception
when ...
update some_table set value = 'values' where key = 'some';
end;
是否有可能更换的东西省略号以捕获一个唯一的约束错误?
以这种方式使用异常有点慢,因为引发异常需要相当长的时间。尝试合并。 – tuinstoel 2009-01-13 20:33:44
同意。但请记住,这个例子只是许多可能的用例之一。问题的确是“唯一约束错误的标识是什么?”。这就是为什么我投票威廉的答案,但接受里卡多的。 – 2009-01-14 11:34:19
PL/SQL代码中的异常并不像托管或高级语言(C#,Java)那样昂贵。在数据库应用程序中,真正的“缓慢”是由数据库访问引起的,在这种情况下,PL/SQL异常成本是微不足道的。 – 2009-01-16 16:25:49