Erro em Trigger

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

Bom dia pessoal, preciso de uma ajuda por favor

Fiz uma trigger em uma tabela com o objetivo de impedir que o usuario informe uma data de transanção menor do que a data atual do sistema.

Trigger Before Insert Each Row

BEGIN
IF trunc(:NEW.TRANSACTION_DATE) < trunc(SYSDATE) THEN
Raise_Application_Error(-20000,'A Data ' || :New.TRANSACTION_DATE || ' é Anterior a Data Atual.');
END IF;
END;

Mas quando tento salvar o registro, em vez de aparecer a mensagem que eu defini, está aparecendo a mensagem "Erro no Processador da Transação"

o que está errado em minha trigger ?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

O problema é que a trigger não ta disparando a mensagem lindamente como você a definiu, na sua aplicação.
A questão é que você tentou realizar uma transação(DML) e essa transação foi interrompida(foi disparado um erro em sua trigger). Ponto. Sua mensagem com "raise", não é mostrada na aplicação.

Já tentou tratar essa condição com a constraint CHECK na tabela???
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

A trigger está OK sim, e a mensagem deveria ser apresentada com as demais informações da call stack, mais ou menos no formato abaixo:

Selecionar tudo

ORA-20000: <mensagem de erro informada no raise_application_error>
ORA-06512: at <nome da sua trigger>, line <linha onde o ultimo raise ocorreu>
ORA-04088: error during execution of trigger <nome da trigger>
Já tentou realizar o insert via sql, ou um bloco pl/sql?
Acredito que a sua aplicação esteja somente ignorando qual o erro causado, e apresentando esta mensagem genérica "Erro no Processador da Transação".
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes