首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 服务器>数据库应用>文章内容
简化PL/SQL调试的记录一致性错误日志
来源:http://www.unix5.com/ 作者:riechelr_hl 发布时间:2007-08-25  

(time,

code,

message,

package_name,

procedure_name,

location,

parameters)

values (sysdate,

p_error_code,

p_error_message,

p_package,

p_procedure,

p_location,

p_parameters);

commit;

end log;

end pkg_error;

其中pragma autonomous_transaction部分是十分重要的,因为你保证log方法能够将日志数据提交到数据表中,否则要提交过程中导致错误发生的任何相关信息。这就是pragma段完成的功能。它告诉Oracle将该过程作为原子操作,不能影响早期调用堆栈中的任何信息。

当然最后一步是将日志信息应用到代码中。例如,比如说你有一个简单的小函数,并且无论何时发生异常,你都希望能够记录它且还要避免再次发生错误。换句话说,记录错误并使应用能够继续运行。你可能需要做以下工作:

CREATE OR REPLACE FUNCTION hello_world RETURN VARCHAR2 IS

v_ procedure errorlog.procedure_name%TYPE default 'hello_world';

v_ location errorlog.location%TYPE;

BEGIN

v_location := 1000;

return ('hello, world');

EXCEPTION

when others then

pkg_error.log(p_error_code => substr(sqlerrm,1,9),

p_error_message => substr(sqlerrm,12),

p_package => 'FUNCTION',

p_procedure => v_procedure,

p_location => v_location);

END;

很明显,如果是在包内,你需要根据你创建的包的实际名称创建一个全局变量,并将它传递给p_package参数替代我们此处使用的字符串常量。

这非常相似,我并不想说这是PL/SQL中记录错误的最好方法。我从事这方面的工作只有一年多,所以无论如何我都不是一个专家。

但是这种记录方法使得调试我的应用程序变得十分简单。如果出现某个错误,我们会有一个所有出错过程和函数的记录,因此,我们可以很快追踪问题的根源。


共2页: 上一页 [1] 2 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·在Linux x86上安装Oracle数据库1
·Linux系统下的Oracle数据库编程
·Linux下免费数据库PostgreSQL开
·如何在你的Linux机器上安装运行O
·Oracle开发应用
·PostgreSQL的热备和恢复
·Heartbeat_2.0.3配置MySQL5.0.18
·编制一个Mysql数据库自动备份脚
·mysql 优化参数(十项)详解设置
·MySQL数据库系统的常规管理介绍
·新手入门--全面介绍MySQL的基础
·让PHP网站运转如飞 MySQL 的优化
  相关文章
·Oracle PL/SQL编程风格与系统性
·VMWare上Oracle 10g R2的最简安
·在Linux x86上安装Oracle数据库1
·在slackware 10下安装Oracle 10
·在UnixWare7.1.1上安装Oracle8i
·Oracle开发应用
·Linux系统下Mini SQL数据库开发
·Linux系统下的Oracle数据库编程
·如何用"MySQL-Proxy"实现读写分
·怎样测试MyISAM引擎和Heap引擎执
·分布式数据库全局名与数据库链讲
·PostgreSQL的热备和恢复

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!