Decir que tengo un bloque de Oracle PL/SQL que inserta un registro en una tabla y la necesidad de recuperarse de un error de restricción único, de esta manera:¿Cómo atrapar un error de restricción único en un bloque PL/SQL?
begin
insert into some_table ('some', 'values');
exception
when ...
update some_table set value = 'values' where key = 'some';
end;
¿Es posible sustituir los puntos suspensivos para algo con el fin de atrapar un error de restricción único?
Para utilizar las excepciones de esta manera es un poco lento debido a elevar excepciones toma un montón de tiempo. Prueba fusionar – tuinstoel
De acuerdo. Pero tenga en cuenta que este ejemplo fue solo uno de muchos posibles casos de uso. La pregunta realmente es "¿cuál es la identificación del error de restricción único?". Es por eso que voté la respuesta de William pero acepté la de Ricardo. –
Las excepciones en el código PL/SQL no son tan costosas como en los lenguajes administrados o de alto nivel (C#, Java). En una aplicación DB la "lentitud" real es causada por el acceso db, un costo de excepción PL/SQL es insignificante en este contexto –