俗话说事不预则废,无规矩不成方圆。
对sql脚本程序的设计,个人认为应该是从编码规范开始。
前段时间公司一些同事提交的脚本,风格迥异,让我审核起来倍感难受,丝毫没有审核代码的快感。
特整理了公司部分常规的编码规范,对新人进行了培训,希望同志们写的代码更美观和高效(注:规范部分收集于网络,感谢网络大虾们的贡献):
1.1. PL/SQL 程序命名规范
1. 无论是 PL/SQL 对象还是 PL/SQL 对象内部用的变量和游标等,都必须能从名称上能让人理解变量和游标的含义,而且一定要做好注释。
2. 传到 CVS 上的文本文件全部采用 ’.sql’ 作为文件名的后缀
1.1.1. 存储过程
存储过程的命名必须符合USP_DETAILNAME 格式,其中 USP 表示是存储过程,DETAILNAME 是与存储过程意义相关的意义的名称,如:USP_BUSINESS_RULE 。
1.1.2. 软件包
软件包的命名必须符合PKG_ DETAILNAME 格式,其中 PKG 表示是软件包, DETAILNAME 是与软件包意义相关的意义的名称,例如:PKG_SORCE_ALL 。
1.1.3. 触发器
触发器的的命名必须符合TRG_DETAILNAME 格式,其中TRG 表示是触发器,DETAILNAME 是与触发器用途相关的意义的名称,具体可以参考已有的TRIGGER 对象。
1.1.4. 函数
函数的命名必须符合FNC_DETAILNAME 格式,其中FNC 表示是函数,,DETAILNAME 是与函数意义相关的意义名称,例如:FNC_SALARYCOUNT 。
1.1.5. 变量 & 游标
1. 变量的命名必须符合规约, 请采用 ” XXX_variablename ” 开头, 其中XXX 表示变量的类型。Variablename 表示变量名,如为函数传入参数请根据传入类型加上IN,OUT,INOUT 等,如: IN_NUM_CUST_CODE.
2. 如果依据表的字段请采用%type 或者%rowtype 方式。请不要直接定义变量。
如: NUM_CUST_CODE TableName.CUST_CODE%type
3. 显示游标请采用 ” CUR_ ” 开头,在代码开头请说明,同时说明游标的定义.
如:CUR_CUST_INFO
4. 所有的变量前必须带上变量类型的标志,NUMBER 型采用NUM,VARCAHR2 采用VAR ,而在函数等入口的传入方法 IN_VAR_CUST_NAME,OUT_NUM_CODE,INOUT_NUM_CODE 的方式来区分变量的类型是否位IN,OUT,INOUT 类型
5. 不能超过30 个字符,不能采用关键字,要以字母开头。
注: 以上命名规则将主要在于新建对象时使用,如果在原有的PL/SQL 对象的基础上修改,请按照原来代码的命名规范,注意做好代码的注释。同时必须在PL/SQL 代码开头,做好注释说明。
1.2. PL/SQL 编码规范
PL/SQL 的编码规范包括:
² 注释
² 变量命名
² 书写格式
² 逻辑分支
² 循环处理
1.2.1 注释
1. 请在所有程序一开始处严格按如下格式写出注释块:
-- *******************************************
-- 过程名:
-- 功能描述:
--