Re: [oracle_br] Re: Ajuda com trigger para incluir permissão

2014-12-02 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Compilou aqui , mas esse rec são os dados que o cursor referencia ?

Em 2 de dezembro de 2014 16:44, Marlon Pasquali - TI - Peccin S.A.
marlon.pasqu...@peccin.com.br [oracle_br] oracle_br@yahoogrupos.com.br
escreveu:



  Voce tem que colocar



  VALUES(rec.matricula, 3, ' ', :new.codfornec,
   1, SYSDATE);





 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* terça-feira, 2 de dezembro de 2014 16:43
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] Re: Ajuda com trigger para incluir permissão





 Pesquisando o erro consertei essa linha:



  VALUES(   empregados.matricula, 3, ' ', :new.codfornec,
 1, SYSDATE);



 Agora só ficou o erro :



  PL/SQL: ORA-00984: column not allowed here







 Em 2 de dezembro de 2014 16:15, Eduardo Perdomo panc...@gmail.com
 escreveu:

 Boa tarde.



 Preciso criar uma trigger que ao cadastrar um novo fornecedor
 automaticamente inclua permissão de acesso.

 Tenho a tabela fornecedores, empregados e liberação.

 Preciso , que ao cadastrar um novo fornecedor, varrer todo o cadastro de
 empregados e incluir a permissão na tabela liberação para todos os
 empregados.



 Segue abaixo o que estou tentando:





 CREATE OR REPLACE TRIGGER insere_131

  BEFORE

   INSERT

  ON fornecedores

 REFERENCING NEW AS NEW OLD AS OLD

  FOR EACH ROW

 DECLARE

 cursor c_t is select matricula from empregados ;



 BEGIN



  for rec in c_t loop

 INSERT INTO liberacao(CODFUNC, CODTABELA, CODIGOA,CODIGON,
 CODFUNC_LIB, DATA_LIB)

  VALUES(c_t.matricula, 3, ' ', :new.codfornec,
   1, SYSDATE);

   end loop;

 END insere_131;





 Os erros:

 PLS-00225

 ORA-00984

















 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





 --



 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






-- 

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] Re: Ajuda com trigger para incluir permissão

2014-12-02 Por tôpico Andre Santos andre.psantos...@gmail.com [oracle_br]
Eduardo

Sugestão: também pode fazer um INSERT ... SELECT direto (sem cursor
explícito).

[ ]

André


Em 2 de dezembro de 2014 17:30, Marlon Pasquali - TI - Peccin S.A.
marlon.pasqu...@peccin.com.br [oracle_br] oracle_br@yahoogrupos.com.br
escreveu:



  Sim,

 Sempre que você for ler um cursor, você vai usar o seu index.





 *Syntax*

 The syntax for the *CURSOR FOR LOOP* in Oracle/PLSQL is:

 FOR record_index in *cursor_name*

 LOOP

{...statements...}

 END LOOP;

 *Parameters or Arguments*

 *record_index* is the index of the record.

 *cursor_name* is the name of the cursor that you wish to fetch records
 from.

 *statements* are the statements of code to execute each pass through the
 CURSOR FOR LOOP.



 Att

 Marlon







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* terça-feira, 2 de dezembro de 2014 17:21
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] Re: Ajuda com trigger para incluir permissão





 Compilou aqui , mas esse rec são os dados que o cursor referencia ?



 Em 2 de dezembro de 2014 16:44, Marlon Pasquali - TI - Peccin S.A.
 marlon.pasqu...@peccin.com.br [oracle_br] oracle_br@yahoogrupos.com.br
 escreveu:



 Voce tem que colocar



  VALUES(rec.matricula, 3, ' ', :new.codfornec,
   1, SYSDATE);





 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* terça-feira, 2 de dezembro de 2014 16:43
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] Re: Ajuda com trigger para incluir permissão





 Pesquisando o erro consertei essa linha:



  VALUES(   empregados.matricula, 3, ' ', :new.codfornec,
 1, SYSDATE);



 Agora só ficou o erro :



  PL/SQL: ORA-00984: column not allowed here







 Em 2 de dezembro de 2014 16:15, Eduardo Perdomo panc...@gmail.com
 escreveu:

 Boa tarde.



 Preciso criar uma trigger que ao cadastrar um novo fornecedor
 automaticamente inclua permissão de acesso.

 Tenho a tabela fornecedores, empregados e liberação.

 Preciso , que ao cadastrar um novo fornecedor, varrer todo o cadastro de
 empregados e incluir a permissão na tabela liberação para todos os
 empregados.



 Segue abaixo o que estou tentando:





 CREATE OR REPLACE TRIGGER insere_131

  BEFORE

   INSERT

  ON fornecedores

 REFERENCING NEW AS NEW OLD AS OLD

  FOR EACH ROW

 DECLARE

 cursor c_t is select matricula from empregados ;



 BEGIN



  for rec in c_t loop

 INSERT INTO liberacao(CODFUNC, CODTABELA, CODIGOA,CODIGON,
 CODFUNC_LIB, DATA_LIB)

  VALUES(c_t.matricula, 3, ' ', :new.codfornec,
   1, SYSDATE);

   end loop;

 END insere_131;





 Os erros:

 PLS-00225

 ORA-00984

















 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





 --



 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





 --



 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