« 上一篇下一篇 »

ORACLE数据库的统一命名与编码规范-2

4、 编码规范 

4.1 一般性注释
4.1.1 注释尽可能简洁、详细而全面
4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出' 

4.1.3 注释语法包含两种情况:单行注释、多行注释 

单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。 

多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。 

4.2 函数文本注释 

4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释


/************************************************************************ 
*name : --
函数名 
*function : --函数功能 
*input : --输入参数 
*output : --输出参数 
*author : --作者 
*CreateDate : --创建时间 
*UpdateDate : --函数更改信息(包括作者、时间、更改内容等) 
*************************************************************************/ 
CREATE [OR REPLACE] PROCEDURE dfsp_xxx 

  

  

4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。 

4.2.3 在每一个变量声明的旁边添加注释。说明该变量要用作什么 

通常,简单使用单行注释就行了,例如l_sfzh CHAR(11) --身份证号码 

4.2.4 在块的每个主要部分之前添加注释 

在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息 

4.3 常用SQL 语句的编写规范

4.3.1 CREATE语句 

CREATE TABLE dft_dksz(
YHBS VARCHAR2(20) NOT NULL, 
ZHGX DATE, 
DKKHD VARCHAR2(24), 
CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS) 
)
 
4.3.2 SELECT
语句 

查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能): 

★ 将SELECT 语句分为5部分:
(1) 由SELECT 开头,后跟一个显示查询结果的列表; 

(2) 由FROM 开头,后跟一个或多个获取数据所涉及的表; 

(3) 由WHERE 开头,后跟一个或多个确定所需值的条件; 

(4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总; 

(5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。 

★ 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 


SELECT col1, col2, col3 
FROM table1 
WHERE col1 > col2 
GROUP BY col1, col2 
ORDER BY col1;
  

★ 关键字用大写,列名和表名采用小写 

★ 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行 

★ 当语句的同一部分要延续到下一行时,按下列格式排列: 


SELECT col1, col2, col3, col4, col5, col6, 
col7, col8, col9, col10
 
  

★ 将语句中WHERE 和AND 部分格式化,书写布局类似于 


WHERE 
AND 
AND
  

  

★ 当语句中出现括号时,括号的两边不留空格
★ 在SQL 语句使用运算符时,操作两边应各留一个空格,如 


WHERE X = Y 
AND A = B 
AND C = D
  

4.3.3 INSERT语句 


INSERT INTO <
要插入的表名> 
(<列1>, <列2>, .., <列n-1>, <列n>) 
VALUES (<列1值>, <列2值>, .., <列n-1值>, <列n值>)
  

 4.3.4 UPDATE语句 


UPDATE <
要更新的表名> 
SET <要更新的列> = <列值>
  

  

4.3.5 DELETE语句 


DELETE FROM table1 
WHERE col1 = '???'
  

  

4.4 条件执行语句(IF)编写规范

条件执行语句IF…ELSE 按以下格式编写 


IF <
条件表达式> 
THEN 
< 一条或多条语句> 
[ELSE (或ELSIF<条件表达式>) 
THEN 
< 一条或多条语句> 
END IF;
 
  


注: 

(1) 在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和END IF间可包含一条或多条PL/SQL 

语句,而不需要加BEGIN 和END 

(2)IF…ELSE…ENDIF 语句可以嵌套 

(3) 注意ELSIF的写法 

4.5 循环语句编写规范 

4.5.1 简单循环语句 


LOOP 
零条或多条语句> 
EXIT WHEN <条件表达式> 
< 零条或多条语句> 
END LOOP;
  

  

4.5.2 FOR循环语句 

FOR 变量IN [变量取值范围] 


LOOP 
一条或多条语句> 
END LOOP;
  

  

4.5.3 WHILE循环语句 

WHILE <条件表达式>


LOOP 
一条或多条语句> 
END LOOP;
  

  

4.6 函数文本(存储过程、函数和包等) 

★ 对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下:

BEGIN 
… 
EXCEPTION 
WHEN excep—name1 THEN 
… 
WHEN excep—name2 THEN 
… 
WHEN OTHERS THEN 
… 
END;
  

  

★ 对于子程序、触发器、包等带名的程序块,要使用结束标识,如 


CREATE OR REPLACE PROCEDURE XXXsp_XXX IS 
… 
BEGIN 
… 
END XXXsp_XXX;
/* 此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应*/