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 ?
Erro em Trigger
-
- Rank: DBA Pleno
- Mensagens: 248
- Registrado em: Sex, 06 Fev 2009 3:02 pm
- Localização: ERECHIM - RS
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
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???
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???
-
- 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:
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".
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>
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".
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante