加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何在oracle 10g中创建存储过程的错误日志?

发布时间:2021-01-01 07:40:23 所属栏目:站长百科 来源:网络整理
导读:我必要一个在oracle中为存储进程建设错误日记文件的示例. 请给我一个表建设和存储进程建设和错误日记建设的示例. 提前叩谢 编辑(其他题目的相干信息) 假设有一个存储进程.当我执行该存储进程时,也许会呈现一些预期的错误/非常,因此我必要建设一个错误日记表,

我必要一个在oracle中为存储进程建设错误日记文件的示例.
请给我一个表建设和存储进程建设和错误日记建设的示例.

提前叩谢

编辑(其他题目的相干信息)

假设有一个存储进程.当我执行该存储进程时,也许会呈现一些预期的错误/非常,因此我必要建设一个错误日记表,个中全部错误将在我执行存储进程时自动存储.

譬喻,假如某些列不应承空值,但用户输入空值,则应天生该错误,并将其存储在错误日记表中.

办理要领

您还没有真正具体声名您的要求.这是一个简朴的错误日记表和将错误动静记录到个中的进程:

CREATE TABLE error_log (ts TIMESTAMP NOT NULL,msg VARCHAR2(4000));

CREATE PROCEDURE log_error (msg IN VARCHAR2) IS
BEGIN
  INSERT INTO error_log (ts,msg)
  VALUES (SYSTIMESTAMP,SUBSTR(insert_log.msg,1,4000));
END log_error;

您也许必要也也许不必要它作为自治事宜.这取决于您是否但愿日记记录来自回滚其变动的进程的错误.

凡是,这将在更通用的日记记录体系中实现,该体系不只会记录错误,还会记录告诫和调试信息.

假如你想要一个DML语句(插入/更新/删除)来记录每一行的错误(而不是只在第一行失败那么错误),你可以行使LOG ERRORS子句 – 而不是语句失败,语句将乐成,未插入/更新/删除的行将写入您指定的错误日记表,以及合用的错误代码和错误动静.请参阅vettipayyan提供的链接.

假如您但愿记录进程中激发的全部非常,则可以行使WHEN OTHERS捕捉它们:

BEGIN
  -- your code here
EXCEPTION
  WHEN OTHERS THEN
    log_error(DBMS_UTILITY.format_error_stack);
    log_error(DBMS_UTILITY.format_error_backtrace);
    RAISE;
END;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读