ITPub博客

首页 > 数据库 > Oracle > pl/sql 编写规范四

pl/sql 编写规范四

原创 Oracle 作者:wzy25 时间:2019-03-13 10:30:07 0 删除 编辑

编写规范四:访问规范


[@more@]

l 在多表连接访问列时,表采用别名,列采用限定名和别名。

l 访问多列时,避免使用“*” 访问全部列,特别是多表访问或大表访问。

l 在远程访问(如DBLINK) 开始时,须显示说明。

编写规范五:设计方法

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

1. 代码规划

本文不讨论设计部分做出的对PLSQL部分的整体规划。代码设计遵守采用自上而下的方法。从业务处理逻辑到系统数据流处理到各环节功能。

Ø 设计包,确定功能及范围。

Ø 通过对功能的划分,设计包下过程和函数,确定功能及范围。

Ø 设计过程、函数的参数。

Ø 必要时设计辅助的对象、类型、常量、全局变量。

Ø 设计代码处理逻辑。

代码规划时需要遵守的规则如下:

l 谨记,PLSQL部分的设计必定是在整个设计基础之上的,服从于整个设计。

l 包、过程、函数的设计用途必须明确、清晰。

l 各代码块完成的功能应相对单一。

l 注意区分含大量业务流逻辑控制的代码(控制代码)与进行单一功能处理的代码(功能代码)。建议功能代码设计成过程、函数,控制代码块通过子过程、函数调用这些功能代码,

l 过程、函数的规模不宜过大,一般控制在300行以内。

l 代码块之间耦合度低,代码块内耦合度高。

l 全局变量须明确其含义、作用、取值范围、与其它全局变量间的关系、访问原则。请注意全局变量的初始化。

l 功能代码中不使用全局变量;由控制代码获得全局变量后作为参数传入。

l 请注意对错误异常的处理机制。

2. 函数化、过程化

l 扇出是指一个过程、函数直接调用其它过程、函数的数目;扇入是指有多少过程、函数调用它。

l 简单但在多处使用的功能宜设计为过程、函数。

假设:

if v_date1 > v_date2 then

v_date := v_date1;

else

v_date := v_date2;

end if;

可以设计:

function f_max_date (

p_date1 in date

p_date2 in date

) return date is

v_date DATE;

begin

if p_date1 > p_date2 then

v_date := p_date1;

else

v_date := p_date2;

end if;

return v_date;

end;

v_date := f_max_date (v_date1, v_date2);

l 功能不明确、代码量少且扇入数很小的过程或函数可以并入到调用过程、函数中。

l 若过程、函数的代码量过大,则应该将其分解为若干子过程、函数。

l 扇入数非常大的过程、函数,应适当在与上层之间增加层次;若必要,将其设计成标准过程、函数。

l 标准过程、函数,满足参数简单,功能单一,逻辑清晰,控制完整,代码中未调用非标准过程、函数。

l 注意控制调用层数,不宜超过6层。

l 过程化、函数化的控制代码应与相应的业务逻辑相一致。

l 如无必要,处理相同或相近的不同过程、函数应合并。

3. 事务设计规则

l 禁止在PLSQL部分使用事务处理语句COMMITROLLBACK的使用应慎重。

l 事务处理第一步必须取得记录控制权(锁)。

l 事务处理时,请注意对代码执行错误、异常的处理。

l 批次作业时,若某作业失败,请注意其事务的完整性,应将该作业回滚至未作业状态。

l 批次作业时,请注意其完成的时效性。一般采用逐作业处理模式。

l 采用按照逻辑顺序整批处理时,则无法对部分作业单独提交。请设计时注意具体分析。

4. JAVA调用规则(待补充)

5. 远端数据库访问规则

l 禁止通过DBLINK更新远端数据库。

l 允许通过DBLINK访问远端数据库。

l 通过DBLINK访问远端大量数据表时,很多查询优化并不适用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3618/viewspace-1032899/,如需转载,请注明出处,否则将追究法律责任。

上一篇: pl/sql 编写规范三
下一篇: 常用sql书写示例1
请登录后发表评论 登录
全部评论

注册时间:2001-12-14

  • 博文量
    1011
  • 访问量
    764806