如何在oracle 10g中创建存储过程的错误日志?
我必要一个在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; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |