从哪里可以看到来自RAISE_APPLICATION_ERROR的错误消息?

时间:2012-12-10 16:23:42

标签: oracle triggers

我在Oracle数据库中创建了一个触发器。此触发器将在插入过程之前执行,以终止所有重复数据。该过程由C#应用程序执行。

TRIGGER Kill_Duplicates

BEGIN

IF ( xxx ) THEN
  Raise_application_error(-22222, ' is duplicate!');
END IF;

END
  1. 从Raise_application_error中读取消息的位置?例如,如果某些重复数据进入数据库,它会触发Raise_application_error,在哪里读取 - “( - 22222,'是重复!')”?
  2. 有没有办法调试触发器?如果我的触发器不正确,例如,语法问题,逻辑问题,那么如何读取触发器本身的异常消息?我怎么知道以及如何获得例外/错误?

1 个答案:

答案 0 :(得分:1)

异常将传递给执行导致触发器执行的DML语句的会话。

我怀疑您的错误消息表明您正尝试使用触发器强制执行完整性。这通常是一件坏事。