【发布时间】:2015-08-04 02:41:46
【问题描述】:
我在 PL/SQL 触发器中引发了一条错误消息,它工作正常,只是它返回的错误多于我指定给应用程序的错误。除了自定义错误之外,我还获得了有关发生错误的行和触发器的信息。
例如它会得到
ORA-20111: There is a custom error here
ORA-06512: at "{schema_name}.{trigger_name}", LINE 2
ORA-04088: error during execution of trigger {schema_name}.{trigger_name}<br>
.Operation canceled.
我真正想要的是:
ORA-20111: There is a custom error here
如何在错误消息返回到我的应用程序之前从错误消息中删除额外信息?下面是我的测试代码...
CREATE OR REPLACE TRIGGER CUSTOM_ERROR
BEFORE INSERT OR UPDATE ON {SCHEMA_NAME}.{TABLE_NAME} FOR EACH ROW
BEGIN
RAISE_APPLICATION_ERROR(-20111, 'There is a custom error here');
END;
【问题讨论】:
-
你的代码是什么样的?我没有看到您发布的任何代码。你是如何处理异常的?
-
@LalitKumarB 没有处理。为您调整了代码。我希望用户从应用程序中看到这个错误。它只显示它从 Oracle 收到的错误。我希望错误与我在 RAISE_APPLICATION_ERROR 中输入的完全一致,仅此而已
-
但这不会有帮助,因为不引发已经定义的异常并且只有用户定义的异常。
-
@LalitKumarB 要解决的重要问题是我的问题,而不是从其他角度来看我需要的东西是否有用。
-
@LalitKumarB 另一个需要注意的重要事情是,它是一个不同于系统错误的“应用程序错误”。我确实向您保证,它对谁得到它很有用,它会准确地告诉他们哪里出了问题以及如何解决它。
标签: oracle plsql error-handling exception-handling oracle11g