Re: [oracle_br] Erro ORA-04082 ao criar trigger

2014-02-26 Por tôpico Eduardo Perdomo
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

2014-02-25 Por tôpico Eduardo Perdomo
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

2014-02-25 Por tôpico Leonardo Rezende
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

2014-02-25 Por tôpico Fabio Prado
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