oracle - 如何捕获触发器内部的错误
问题描述
我想创建一个触发器,它应该捕获触发器内部发生的所有错误。它应该存储在一些日志表中。这是我的挑战how to capture the error occur in DML statments
。在日志中捕获的 DML 语句错误respective table name along with column name and error message
。它还应该使用确切的行号捕获所有其他错误,例如 no_data_found。
请看我下面的代码。如果有任何更改需要告诉我们。
create or replace TRIGGER user_name.sample_trg
AFTER UPDATE ON user_name.transaction_tb
FOR EACH ROW
DECLARE
variable_ln number;
l_err varcha2(4000);
BEGIN
select column_value
into variable_ln
from tb1
where colum_1 = :NEW.colum_1
IF UPDATING THEN
INSERT
INTO hisotry_tb
(
column1,
column2,
column3,
column4,
)
VALUES
(
:NEW.column1,
:NEW.column2,
:NEW.column3,
:NEW.column4,
);
END IF;
IF INSERTING THEN
INSERT
INTO hisotry_tb
(
column5,
column6,
column7,
column8,
)
VALUES
(
:NEW.column5,
:NEW.column6,
:NEW.column7,
:NEW.column8,
);
END IF;
EXCEPTION
WHEN OTHERS THEN
l_err := DBMS_UTILITY.FORMAT_ERROR_STACK || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE;
INSERT INTO log (erro_msg, trigger_name, column_name)
VALUES (l_err, 'sample_trg', '?');
DBMS_OUTPUT.put_line (l_err);
END;
解决方案
推荐阅读
- javascript - 尝试导入错误:“PRODUCT_LIST_FAIL”未从“../constants/productConstants.Js”导出
- html - 我正在尝试对齐所有 5 张图片,以便制作带有动画的图像滑块
- javascript - 当我尝试在 javascript 中获取对象时出现 JSON 错误
- amazon-web-services - AWS DMS 任务失败:“类型 oid 的输入语法无效”
- android-intent - 如何训练聊天机器人的意图 - 基于用例的训练或“合并意图,拆分实体”?
- kubernetes-helm - 具有不同命名空间的 helm 依赖项
- python - 如何将 Pandas DataFrame 转换为三层嵌套字典?
- algorithm - 如何检测每个元素的对象数组的变化?
- windows - Snowsql 外部浏览器身份验证 - Windows/Chrome
- vue.js - 在我的自定义表格中,我的复选框有问题