Re: [oracle_br] Erro ORA-04082 ao criar trigger
Bom dia. Modifiquei um pouco e funcionou como esperado. Obrigado a todos: CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE QT_TV8 NUMBER; BEGIN select nvl(sum(qt),0) INTO QT_TV8 from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C') AND CODFILIALRETIRA = :NEW.CODFILIAL ; :NEW.QTFRENTELOJA := QT_TV8; END Atualiza_Saldo_TV8; 2014-02-25 17:34 GMT-03:00 Fabio Prado fbifa...@gmail.com: Eduardo, acrescente FOR EACH ROW após o nome da tabela, como no exemplo abaixo: CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest for each row BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; []s Fábio Prado 2014-02-25 17:25 GMT-03:00 Eduardo Perdomo panc...@gmail.com: Boa tarde. Podem me dizer onde estou errando : Só preciso pegaro saldo dos pedidos da consulta e gravar na coluna qtfrenteloja do novo registro: Está dando erro 17:14:21 ORA-04082: NEW or OLD references not allowed in table level triggers CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br -- *Fábio Prado* http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br
[oracle_br] Erro ORA-04082 ao criar trigger
Boa tarde. Podem me dizer onde estou errando : Só preciso pegaro saldo dos pedidos da consulta e gravar na coluna qtfrenteloja do novo registro: Está dando erro 17:14:21 ORA-04082: NEW or OLD references not allowed in table level triggers CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br
Re: [oracle_br] Erro ORA-04082 ao criar trigger
FOR EACH ROW LRezende 2014-02-25 17:25 GMT-03:00 Eduardo Perdomo panc...@gmail.com: Boa tarde. Podem me dizer onde estou errando : Só preciso pegaro saldo dos pedidos da consulta e gravar na coluna qtfrenteloja do novo registro: Está dando erro 17:14:21 ORA-04082: NEW or OLD references not allowed in table level triggers CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br
Re: [oracle_br] Erro ORA-04082 ao criar trigger
Eduardo, acrescente FOR EACH ROW após o nome da tabela, como no exemplo abaixo: CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest for each row BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; []s Fábio Prado 2014-02-25 17:25 GMT-03:00 Eduardo Perdomo panc...@gmail.com: Boa tarde. Podem me dizer onde estou errando : Só preciso pegaro saldo dos pedidos da consulta e gravar na coluna qtfrenteloja do novo registro: Está dando erro 17:14:21 ORA-04082: NEW or OLD references not allowed in table level triggers CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br -- *Fábio Prado* http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle