首页 > 数据库 > Oracle > pl/sql 编写规范四
编写规范四:访问规范
l
在多表连接访问列时,表采用别名,列采用限定名和别名。
l
访问多列时,避免使用“*”
访问全部列,特别是多表访问或大表访问。
编写规范五:设计方法
本文不讨论设计部分做出的对PLSQL部分的整体规划。代码设计遵守采用自上而下的方法。从业务处理逻辑到系统数据流处理到各环节功能。
Ø 设计包,确定功能及范围。
Ø 通过对功能的划分,设计包下过程和函数,确定功能及范围。
Ø 设计过程、函数的参数。
Ø 必要时设计辅助的对象、类型、常量、全局变量。
Ø 设计代码处理逻辑。
代码规划时需要遵守的规则如下:
l
谨记,PLSQL部分的设计必定是在整个设计基础之上的,服从于整个设计。
l
包、过程、函数的设计用途必须明确、清晰。
l
各代码块完成的功能应相对单一。
l
注意区分含大量业务流逻辑控制的代码(控制代码)与进行单一功能处理的代码(功能代码)。建议功能代码设计成过程、函数,控制代码块通过子过程、函数调用这些功能代码,
l
过程、函数的规模不宜过大,一般控制在300行以内。
l
代码块之间耦合度低,代码块内耦合度高。
l
全局变量须明确其含义、作用、取值范围、与其它全局变量间的关系、访问原则。请注意全局变量的初始化。
l
功能代码中不使用全局变量;由控制代码获得全局变量后作为参数传入。
l 请注意对错误异常的处理机制。
l 扇出是指一个过程、函数直接调用其它过程、函数的数目;扇入是指有多少过程、函数调用它。
l 简单但在多处使用的功能宜设计为过程、函数。
假设:
if v_date1 > v_date2 then
v_date :=
v_date1;
else
v_date := v_date2;
end if;
可以设计:
function f_max_date (
p_date
p_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 如无必要,处理相同或相近的不同过程、函数应合并。
l
禁止在PLSQL部分使用事务处理语句COMMIT。ROLLBACK的使用应慎重。
l
事务处理第一步必须取得记录控制权(锁)。
l
事务处理时,请注意对代码执行错误、异常的处理。
l
批次作业时,若某作业失败,请注意其事务的完整性,应将该作业回滚至未作业状态。
l
批次作业时,请注意其完成的时效性。一般采用逐作业处理模式。
l
采用按照逻辑顺序整批处理时,则无法对部分作业单独提交。请设计时注意具体分析。
l
禁止通过DBLINK更新远端数据库。
l
允许通过DBLINK访问远端数据库。
l
通过DBLINK访问远端大量数据表时,很多查询优化并不适用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3618/viewspace-1032899/ ,如需转载,请注明出处,否则将追究法律责任。