Disparador ON-ERROR

ansi_anso
15 de Junio del 2005
El caso es que pongo el disparador ON-ERROR, y según me van dando los errores pongo algo como
DECLARE
N NUMBER;
BEGIN
IF ERROR_CODE = 40100 THEN
SET_ALERT_PROPERTY('ALERTA', ALERT_MESSAGE_TEXT, 'Primer registro);
ELSE
IF ERROR_CODE = 40352 THEN
SET_ALERT_PROPERTY('ALERTA', ALERT_MESSAGE_TEXT, 'Último registro');
END IF;
END IF;
N := SHOW_ALERT('ALERTA');
END;

y me hace bien el primer registro, pero no el último, y así con más cosas, algunos nuna salen. ¿Alguién sabe por qué?
-GRACIAS-