我目前正在处理程序中的日志错误.此过程的目标是在DB中的其他包中的异常处理程序中调用,并记录每个程序遇到的错误.下面是我的代码.
CREATE OR REPLACE PROCEDURE APMS.test_procedure AS
procedure write_error_log (errcode number, errstr varchar2) is
pragma autonomous_transaction;
-- this procedure stays in its own new private transaction
begin
INSERT INTO error_log
(ora_err_tmsp,
ora_err_number,
ora_err_msg,
ora_err_line_no)
values (CURRENT_TIMESTAMP,
errcode,
errstr,
'line number');
COMMIT; -- this commit does not interfere with the caller's transaction.
end write_error_log;
BEGIN
INSERT INTO mockdata
VALUES ('data1', 'mockname', 'mockcity');
exception when others then
write_error_log(sqlcode,sqlerrm);
raise;
END test_procedure;
/
Run Code Online (Sandbox Code Playgroud)
我目前只是在我的mock_data表中引发错误,以记录error_log表中的错误,看看它的功能是否只是无法弄清楚如何记录行号列.我是一个完全的初学者,所以任何帮助都会赞赏.Addiotionally,如果有人知道如何在其他软件包/过程中使用此过程来记录其他软件包中的错误,那也是很棒的.我在这里学习,所以任何反馈都表示赞赏,如果我不清楚,我可以进一步扩展这篇文章.
我在这里查询了一些问题以及在线观看和观看视频,但我仍然感到困惑的是IN,OUT.我问的原因是因为我正在编写一个程序,根据其他程序中的IN参数记录错误,
干杯!
我在 Toad 中为 oracle 创建了一个名为 error_log 的表。这样做的目的是记录以前编写的包可能遇到的任何错误,并记录它们以供开发人员查看。现在,我的任务是创建一个包/过程,它基本上会引发错误并能够将其记录到 error_log 表中?关于我将如何处理这件事的任何想法?