Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Branco_style

sintaxe

Recommended Posts

Triggers são códigos que são disparados quando um evento (inserção,alteração ou deleção) ocorrem em uma tabela.

 

Podem ser escritas em pl/sql uma linguagem com síntaxe própria.

 

Forms é uma plataforma IDE da Oracle.

 

Qual a sua dúvida ? Para mim não ficou claro e creio para ostros membros também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte eu tenho um form que tem 2 campos onde informo a data inicial e a data final e tenho um bloco de dados com os campos Fun_id, fun_nome, fun_cpf e fun_dtcad,

eu gostaria de quando eu preencher o campo data final e dar enter ele preencha o bloco de dados com os funcionarios cadastradado entre o intervalo de data.

 

eu coloquei este codigo dentro da trigger porem da um erro: FRM-40737 PROCEDIMENTO RESTRITO NEXT_RECORD INVALIDO NO GATILHO WHEN-VALIDATE-ITEM

 

DECLARE
 CURSOR C_QUANT_FUNC IS
     SELECT COUNT(FUN_ID)
     FROM FUNCIONARIOS
     WHERE FUN_DTCAD BETWEEN :BLK_FUNCIONARIOS.TXT1 AND :BLK_FUNCIONARIOS.TXT2;

  CURSOR C_FUN (LINHA NUMBER) IS
      SELECT FUN_ID, FUN_NOME, FUN_CPF, FUN_DTCAD
      FROM FUNCIONARIOS
      WHERE FUN_DTCAD BETWEEN :BLK_FUNCIONARIOS.TXT1
AND :BLK_FUNCIONARIOS.TXT2
AND ROWNUM = LINHA
       ORDER BY FUN_ID;

    R_FUN_QUANT     NUMBER(7);
    R_FUN                 C_FUN%ROWTYPE;
    V_CONT                 NUMBER(5);
BEGIN
  OPEN C_QUANT_FUNC;
  FETCH C_QUANT_FUNC INTO R_FUN_QUANT;
  CLOSE C_QUANT_FUNC;

  V_CONT := 0;

  LOOP
    V_CONT := V_CONT+1;
    IF V_CONT > R_FUN_QUANT THEN
         EXIT;
     END IF;

     OPEN C_FUN(V_CONT);
     FETCH C_FUN INTO R_FUN;
     CLOSE C_FUN;
    :BLK_FUNCIONARIOS.FUN_ID := R_FUN.FUN_ID;
    :BLK_FUNCIONARIOS.FUN_NOME := R_FUN.FUN_NOME;
    :BLK_FUNCIONARIOS.FUN_CPF := R_FUN.FUN_CPF;
    :BLK_FUNCIONARIOS.FUN_DTCAD := R_FUN.FUN_DTCAD;
    NEXT_RECORD;
  END LOOP;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço FORMS mas qual seria a tabela que seria feito o insert (1) e qual seria a que deveria receber os dados calculados (2) ?

 

Pelo que entendo deveria haver um trigger na tabela(1) que inserisse oa dados na (2).

 

O que você fez foi um bloco pl/sql que seria chamado aonde ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.