Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/10/2010, 04:13
Alextroy
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Capturar mens. de error de excepciones no predefinidas

Ok, ya entiendo.

Ahora he hecho esta prueba:

CREATE TABLE KKFUTIS (CAMPO1 CHAR(10));

begin
declare
error1 varchar(199);
error2 varchar(199);
begin
INSERT INTO KKFUTIS (CAMPO1) VALUES ('ALGOMASGRANDEDE10');
exception
when OTHERS then
error1 := sqlerrm;
error2 := to_char(sqlcode);
dbms_output.put_line(error1);
dbms_output.put_line(error2);
end;
end;


En este caso el error sique aparece en tiempo de ejecucion ¿no?.
Cuando ejecuto el procedimiento, el editor no muestra error, simplemente no inserta el dato en la tabla. Lo que yo pretendo es capturar ese error ORA-01401 que deberia haberme aparecido en la variable error1 y error2.

He encontrado una forma que tal vez pueda valerme, te la comento a ver que te parece: Se trata de la directiva de compilación PRAGMA EXCEPTION_INIT:

PRAGMA EXCEPTION_INIT (nombre_excepcion, numero_excepcion_Oracle)

El problema que le veo es que en la declaración tienes que establecer todas las posibles excepciones que puedan ocurrir, por lo que hay muchas papeletas de que más de una se te escape...

Por cierto, este comando lo he encontrado en Oracle 10g, ¿existirá también en 9i?

Un saludo