1

我在 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. 有什么方法可以调试触发器吗?如果我的触发器不正确,例如语法问题、逻辑问题,那么如何读取触发器本身的异常消息?我怎么知道以及如何获取异常/错误?
4

1 回答 1

1

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

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

于 2012-12-11T14:57:28.653 回答