Sei que já existem alguns tópicos sobre o assunto, mas infelizmente não consegui aplicar o que li...
Tenho uma tabela que dentre os campos possui um campo chamado NUFIN, outro que é o NUMNOTA e um outro chamado CODTIPOPER, preciso de algo que verifique se o CODTIPOPER é 1611, e se sim, copie o NUFIN para o NUMNOTA.
Tentei criar uma trigger que fizesse isso, mas recebo o erro de trigger mutante, segue abaixo essa trigger:
CREATE OR REPLACE TRIGGER TRG_UPD_TGFFIN_TRD_ND
before INSERT ON TGFFIN
Referencing
New As New
Old AS Old
For Each Row
Declare
Pragma Autonomous_Transaction;
BEGIN
IF :NEW.CODTIPOPER IN (1611) THEN
:NEW.NUMNOTA := :NEW.NUFIN;
END IF;
END;
Como recebi a mensagem de erro, tentei criar uma outra tabela, gravar nela os números que preciso e depois fazer o update na TGFFIN, mas tb recebo erro, abaixo as triggers.
CREATE OR REPLACE TRIGGER TRG_UPD_TGFFIN_TRD_ND
AFTER INSERT ON TGFFIN
Referencing
New As New
Old AS Old
For Each Row
Declare
NUMERO1 NUMBER;
NUMERO2 NUMBER;
BEGIN
NUMERO1 := :NEW.NUFIN;
NUMERO2 := :NEW.NUFIN;
IF :NEW.CODTIPOPER IN (1611) THEN
INSERT INTO CONTROLE_ND_TW VALUES (NUMERO1, NUMERO2);
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_UPD_CONTND_TRD_ND
AFTER INSERT ON CONTROLE_ND_TW
Referencing
New As New
Old AS Old
For Each Row
Declare
NUMERO1 NUMBER;
NUMERO2 NUMBER;
BEGIN
NUMERO1 := :NEW.NOVA_ND;
NUMERO2 := :NEW.NUM_UNICO;
UPDATE TGFFIN SET NUMNOTA = NUMERO1 WHERE NUFIN = NUMERO2;
END;
Desde já agradeço.