首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 服务器>数据库应用>文章内容
Oracle PL/SQL编程风格与系统性能提高
来源:赛迪网技术社区 作者:gaosia 发布时间:2007-08-25  

触发器的优点是自动激发,不管什么引起数据修改(来自程序的或是来自用户的),它们都工作,所以常常用于不同数据表中的相关数据的串接修改。采用这种方法实现数据表间接的数据关联可由数据库集中维护控制,规则变化时只需修改相应的触发器即可,这样系统易于维护,提高了工作效率。

2.2 使用%TYPE、%ROWTYPE方式声明变量

程序设计中常常要通过变量来实现程序间的数据传递,即将表中数据赋值给变量,或是把变量值插入到表中。而要完成这些操作的前提就是,表中数据与变量类型要一致。然而在实际中,表中数据或类型、或宽度有时要变化,一旦变化,就必须去修改程序中的变量声明部分,否则程序将不能正常运行。为了减少这部分程序的修改,编程时使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化,这样的程序在一定程度上具有更强的通用性。

3 提高程序自检能力

一个好的应用系统不仅要有好的用户界面、齐全的功能处理模块,而且要有很强的错误处理能力。因此要求编程人员要预测可能的各种情况(声明异常情态并引发),并尽可能从错误中恢复过来(编写相应异常情态处理器代码),这就是Oracle8中的异常部分的程序设计内容。然而这部分的设计绝非易事。在异常部分的最后设置OTHERS异常情态处理器是个很好的编程习惯,因为它为运行时刻捕捉到的其它错误指明了处理去向,从而保证了程序的正常运行。格式如下:
BEGIN
…
EXCEPTION
 WHEN excep—name1 THEN
 …
 WHEN excep—name2 THEN
 …
 WHEN OTHERS THEN
 …
END;

但是对程序中出现的错误要做到正确的处理(即正确选择异常处理器并执行它),还必须弄清楚异常情态的传播问题。

异常情态的传播指的是当在程序块的声明、执行、异常部分分别出现异常情态时,或在本块中没有相应的异常处理器时会将这个异常情态传播到哪里,会去激发那个块中的处理器。传播规则是这样的:当一个异常情态是在块的执行部分引发的(最常见的),PL/SQL使用下面的规则确定激活哪个异常处理器。(1)若当前块对该异常情态设置了处理器,则执行它并成功完成该块的执行,然后控制转给包含块。(2)若当前块没有该处理器,则通过在包含块中引发它来传播异常情态。然后对包含块执行步骤1。另外,无论是在声明部分引发了一个异常情态,还是在异常处理部分引发,则该异常情态将立即传播给包含块。在包含块引用上述规则进行异常情态的处理,即使在当前块设置了OTHERS处理器也不会被执行。

4 易于阅读

●对于子程序、触发器、包等带名的程序块,使用结束标识。例如:
CREATE OR REPLACE PROCEDURE addstud IS
…
BEGIN
…
END addstud;/* 此处的过程名add是可选的,写上较好,与块开始的CREATE相对应 */

●采用统一的标识符命名规则。对于诸如变量名、子程序名、触发器名等数据库对象命名时,应尽量能表示其功能用途或含义。

●对于过程性语句与程序块采用缩进书写风格,会使得程序结构清晰、层次分明、易阅读。

●采用统一的字母大小写。尽管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 的优化
  相关文章
·简化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"实现读写分
·PostgreSQL的热备和恢复
·怎样测试MyISAM引擎和Heap引擎执
·源码安装Postgresql8.1.3+PostGI

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