Erro de execução Trigger

14/04/2014

0

Boa noite, estou tentando criar um trigger em Oracle, consigo compilar normalmente, porém ele emite erro de execução:

-------------------------------------------------------------------------------------------------------------------------
Ocorreram problemas no banco de dados! ORA-20570: Teste criacao trigger
ORA-06512: Em "TESTE.TRI_PRESTADOR_CONTRATO", line 12
ORA-04088: erro durante a execução do gatilho "TESTE.TRI_PRESTADOR_CONTRATO"
-------------------------------------------------------------------------------------------------------------------------

Abaixo, segue a trigger que estou criando.

-------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE TRIGGER TRI_PRESTADOR_CONTRATO
BEFORE DELETE OR UPDATE OF CCREDPRES ON FINPRES FOR EACH ROW 
DECLARE

  NNUMEPRES NUMBER;

  CURSOR CR_CONTRATO IS
  SELECT NNUMETITU
    FROM HSSTITU
   WHERE NDESCPRES = :OLD.NNUMEPRES;

BEGIN

  OPEN CR_CONTRATO;
  FETCH CR_CONTRATO INTO CONTRATO;
  CLOSE CR_CONTRATO;
  
  IF (:NEW.CCREDPRES <> 'S') AND (:NEW.CCREDPRES <> 'O') THEN
    IF CONTRATO <> NULL THEN
      raise_application_error(-20570,'Este prestador possui contrato com débito em conta'); 
    END IF;
  END IF;
END TRI_PRESTADOR_CONTRATO;
/

-------------------------------------------------------------------------------------------------------------------------

Desde já obrigado!
Marcos Nascimento

Marcos Nascimento

Responder

Posts

16/04/2014

Marcos Nascimento

Boa tarde,

A trigger estava correta, eu que não tinha me atentado a forma como era apresentado o application_error

Tks
Responder

14/10/2015

Walmir Lima

Olá Marcos, bom dia. Tudo bem? Estou com o mesmo problema. Como você resolveu?

Desde já agradeço.

Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar