首页 > 数据库 > Oracle > pl/sql编写规范二
命名空间严格遵守《业务系统源代码命名规范》中的各项约定。命名规范适用于常量、变量、过程、函数、包、游标、对象、类型的定义。
l
命名以易于理解其含义为原则,命名简洁明了。采用前缀加多个英文单词拼接而成。
l
命名不宜过长。
l
多个英文单词可将各单词首字母大写后拼接或在单词间利用符号“_” 拼接。在同一文档或代码区域内应采用相同方式。
l
命名一律采用小写。本规则不用于常量。
l
采用完整的英文单词(可参考专业术语表),或认可的缩写,避免误解。
l
同一代码块内的不同命名间易于区分。
l
命名在同一项目中应一致。
l
利用反义词命名具有互斥意义的变量、过程、函数。
l
如非必要,避免命名中出现无意义数字,如v_value1,v_value2。
l 参数命名采用“p_”,“o_”,“io_”分别表示输入、输出、双向类型;参数“err_code”、“err_desc”特别表示错误代码和错误描述。
l 遵守通用命名规则。
l 变量前缀根据其作用域设置,小写,具体定义如下表:
表、变量作用域前缀
|
变量类型 |
前 缀 |
示 例 |
示 例 |
|
全局变量 |
g_ |
g_PolNo |
g_pol_no |
|
局部变量 |
v_ |
v_PolNo |
v_pol_no |
|
参数变量 |
p_ |
p_PolNo |
p_pol_no |
l 对于和表中字段对应的变量,变量名采用“变量前缀_字段名”的方式,变量类型采用“表名.字段%TYPE”的方式。
示例1:
v_empno staff_info.empno%type;
示例2:
procedure p_get_emp_name(
p_empno in staff_info.empno%type,
p_emp_name out staff_info.emp_name%type
) is
…
l 在包下的过程方法名定义可省略与包名相关的部分。
l
被多处用到且易变化的同义数值或字符,应采用常量命名,便于理解和阅读,变量名不宜过长。
l
常量采用大写。
示例:如下语句直接使用数字定义管理费比例,不易于维护
IF v_manage_fee_rate <> 0.033
THEN
v_manage_fee_rate := 0.033;
END IF;
正确:将数字定义为常量:
CON_MANAGE_FEE_RATE_65801 NUMBER(5,4) := 0.033; --65801险种管理费比例
…
if v_manage_fee_rate <> CON_MANAGE_FEE_RATE_65801
then
v_manage_fee_rate := CON_MANAGE_FEE_RATE_65801;
end if;
l
以c_为前缀,小写,后面接主要表名,多表时可由开发人员自行判定。
示例:
cursor
c_staff_info is
select
emp_name, deptno
from staff_info
where empno = v_empno;
l
游标内使用的变量,应采用参数传入,少使用全局或过程体变量。
示例:
cursor
c_staff_info (p_empno
staff_info.empno%type) is
select
emp_name, deptno
from
staff_info
where empno = p_empno;
l
遵守通用命名规则。
l
“p_”、“f_”、“pkg_”分别为过程、函数和包的前缀
示例:
procedure p_get_emp_name (p_empno in staff_info.empno%type,
p_emp_name out staff_info.emp_name%type
) is
l 命名的单词采用动宾结构。
示例:参照如下方式命名过程或函数。
Procedure p_get_emp_info ( p_empno in staff_info.empno%type) is …
Procedure p_print_pol_info ( p_polno in pol_main%type) is …
l 采用的动词应意义明确,如process、handle等含义不清的动词应避免采用。
l 遵守通用命名规则。
l “r_”、“a_”、“o_”分别为记录(RECORD)、数组(TABLE)、对象(OBJECT)的前缀。
l 类型定义体内要有注释,示例如下。
type r_cs_region_co is record(
exam_grade
region_code_tbl.exam_grade%type,--考核级别
region_co number(6,4), --地区系数
achieve_std number(12,2) --标准举绩
);
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3618/viewspace-1032897/ ,如需转载,请注明出处,否则将追究法律责任。