Holaaaaaaaaaaaaaaaaaa chicos, hacía mucho que no entraba por aquí y veo que seguiis solucionando las duas así que ahí va la mía:
Tengo el siguiente trigger en una BBDD oracle 10g:
CREATE OR REPLACE TRIGGER INT.sglseriesouto
AFTER INSERT OR UPDATE OF status
ON INT.sglserie
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
ecode NUMBER;
v_id_mail disamsg.idmsg%TYPE;
scamposmod VARCHAR2 (1024);
pedido sglcabpe.codped%TYPE;
bulto sgllinbu.nbulto%TYPE;
artic sglartic.codart%TYPE;
precio NUMBER(10,2);
emesg VARCHAR2 (200);
BEGIN
scamposmod := ' ';
IF :NEW.status = '250' AND :OLD.status <> '250' AND :old.codage = '56'
THEN
SELECT disasecmail.NEXTVAL
INTO v_id_mail
FROM DUAL;
SELECT lb.codped, lb.nbulto, a.codart, (a.pvlvigen * lb.servida)
INTO pedido, bulto, artic, precio
FROM sglcabpe cp, sgllinbu lb, sglartic a
WHERE cp.codserie = :NEW.codserie
AND lb.anoped = cp.anoped
AND lb.codped = cp.codped
AND lb.seqped = cp.seqped
AND lb.coddiv = '3101'
AND codage = '56'
AND lb.codart = a.codart
AND (a.pvlvigen * lb.servida) > 3000;
scamposmod :=
'SE HA LANZADO LA SERIE: '
|| NVL (:NEW.codserie, 0)
|| ' CONTIENE EL PEDIDO: '
|| TO_CHAR (pedido)
|| ' CON EL SIGUIENTE BULTO '
|| TO_CHAR (bulto)
|| ' POR VALOR DE '
|| TO_CHAR (precio)
|| ' EUROS ';
INSERT INTO disamsg
(idmsg, tipomsg,
cuerpo,
enviado, fecenviado
)
VALUES (v_id_mail, '41',
'('
|| TO_CHAR (SYSDATE)
|| ' '
|| scamposmod,
'N', to_char(sysdate)
);
END IF;
EXCEPTION
WHEN OTHERS
THEN
ecode := SQLCODE;
emesg := SQLERRM;
raise_application_error (-20001,
'Error detectado ' || ecode || ' = ' || emesg
);
END;
ME da error de ejecución en la línea 60 que es la EXCEPTION pero no se que es lo que se me olvida.....
Este es mi primer trigger creado enterito por mi.... Sabéis que puede pasar
Por favor help-me
Gracias guapos.