Ajuda com cursor oracle
Bom dia.
Quando cadastro as parametrizações da filial (1)de uma empresa, o gatilho replica essa parametrização para todas as filiais dessa empresa. Como faço para que essa replicação aconteça para todas as filiais de todas as empresas?
Segue conteúdo do gatilho:
CREATE TRIGGER TGS_E095HFO_AIU
AFTER INSERT ON E095HFO
FOR EACH ROW
DECLARE
PROGMA AUTONOMOUS_TRANSACTION;
nCodEmp E070Emp.CodEmp%Type;
nCodFil E070Fil.CodFil%Type;
Cursor Cur_E070Emp is
Select CodEmp From E070Emp Where CodEmp not in (99);
Cursor Cur_E070Fil(nEmpCod E070Emp.CodEmp%TYPE) is
Select CodEmp, CodFil
From E070Fil
Where CodEmp = nEmpCod
Order By CodEmp, CodFil;BEGIN
If (:New.CodEmp <> 1 And :New.CodFil = 1) And (:New.CodCpg <> 'AV') then
For Reg_E070Fil in Cur_E070Fil(:New.CodEmp) Loop
nCodFil := Reg_E070Fil.CodFil;
BEGIN
Insert into E095HFO
(CODFOR,
CODEMP,
CODFIL,
SALDUP,
SALOUT,
SALCRE,
DATUPE,
VLRUPE,
DATUCP,
VLRUCP,
DATMCP,
VLRMCP,
DATUPG,
VLRUPG,
QTDPGT,
DATATR,
VLRATR,
MAIATR,
MEDATR,
PRZENT,
CPRCQL,
CPRCPE,
CPRCAT,
CODTPR,
CODCPG,
CODFPG,
QTDDCV,
CRIEDV,
CODTRA,
CODPOR,
CODCRT,
CODBAN,
CODAGE,
CCBFOR,
CODCRP,
ULTDUP,
PAGJMM,
PAGTIR,
PAGDTJ,
PAGMUL,
PAGDTM,
PERDSC,
TOLDSC,
ANTDSC,
PERDS1,
PERDS2,
PERDS3,
PERDS4,
PERDS5,
PERFUN,
PERINS,
INDIND,
CRIRAT,
CTARED,
CTARCR,
CTAFDV,
CTAFCR,
CONEST,
PERFRE,
PERSEG,
PEREMB,
PERENC,
PEROUT,
PERISS,
PERIRF,
SEQORM,
CIFFOB,
CODFAV,
PERINE,
RVLCFR,
RVLFRE,
RVLSEG,
RVLEMB,
RVLENC,
RVLOUT,
RVLDAR,
RVLFEI,
RVLSEI,
RVLOUI,
CODDEP)
values
(:New.CODFOR,
:New.CodEmp,
nCodFil,
:New.SALDUP,
:New.SALOUT,
:New.SALCRE,
:New.DATUPE,
:New.VLRUPE,
:New.DATUCP,
:New.VLRUCP,
:New.DATMCP,
:New.VLRMCP,
:New.DATUPG,
:New.VLRUPG,
:New.QTDPGT,
:New.DATATR,
:New.VLRATR,
:New.MAIATR,
:New.MEDATR,
:New.PRZENT,
:New.CPRCQL,
:New.CPRCPE,
:New.CPRCAT,
:New.CODTPR,
:New.CODCPG,
:New.CODFPG,
:New.QTDDCV,
:New.CRIEDV,
:New.CODTRA,
:New.CODPOR,
:New.CODCRT,
:New.CODBAN,
:New.CODAGE,
:New.CCBFOR,
:New.CODCRP,
:New.ULTDUP,
:New.PAGJMM,
:New.PAGTIR,
:New.PAGDTJ,
:New.PAGMUL,
:New.PAGDTM,
:New.PERDSC,
:New.TOLDSC,
:New.ANTDSC,
:New.PERDS1,
:New.PERDS2,
:New.PERDS3,
:New.PERDS4,
:New.PERDS5,
:New.PERFUN,
:New.PERINS,
:New.INDIND,
:New.CRIRAT,
:New.CTARED,
:New.CTARCR,
:New.CTAFDV,
:New.CTAFCR,
:New.CONEST,
:New.PERFRE,
:New.PERSEG,
:New.PEREMB,
:New.PERENC,
:New.PEROUT,
:New.PERISS,
:New.PERIRF,
:New.SEQORM,
:New.CIFFOB,
:New.CODFAV,
:New.PERINE,
:New.RVLCFR,
:New.RVLFRE,
:New.RVLSEG,
:New.RVLEMB,
:New.RVLENC,
:New.RVLOUT,
:New.RVLDAR,
:New.RVLFEI,
:New.RVLSEI,
:New.RVLOUI,
:New.CODDEP);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20000,
TO_CHAR(SQLCODE) || '-' || SQLERRM);
ROLLBACK;
END;
end if;
COMMIT;
End Loop;
end if;
END;
Att,
Vinicius DiasDiscussão (21)
Carregando comentários...