DESTFIELDNAME5, -- 注释 DESTFIELDNAME6, -- 注释 DESTFIELDNAME7) -- 注释 SELECT SRCFIELDNAME1, -- 注释 SRCFIELDNAME2, -- 注释 SRCFIELDNAME3, -- 注释 SRCFIELDNAME4, -- 注释 SRCFIELDNAME5, -- 注释 SRCFIELDNAME6, -- 注释 SRCFIELDNAME7 -- 注释 FROM T_SRC_TABLE_NAME; END;
↑ 关键字右对齐
说明:
1、 在错误的写法中,虽然SELECT语句部分的SRCFIELDNAME1, SRCFIELDNAME2,
SRCFIELDNAME3可以写在一行中,但由于INSERT INTO语句部分中DESTFIELDNAME1, DESTFIELDNAME2写在一行中,而DESTFIELDNAME3在下一行,因此SELECT语句中每行的字段应与INSERT INTO语句中的字段一一对应(如正确的写法A);
2、 INSERT INTO语句中的各个字段折行后,应缩进并与上一字段左对齐(如正确的写法
B),或者与INTO关键字左对齐(如正确的写法C);
3、 SELECT语句中折行后的第一个字段名应缩进并与上一行的第一个字段名左对齐。
规则:INSERT INTO语句中,如果需要对每个字段增加注释,应将每个字段单独列为一行,并在行尾增加注释。 示例1:
INSERT INTO T_DEST_TABLE_NAME (DESTFIELDNAME1, -- 注释1 DESTFIELDNAME2, -- 注释2 DESTFIELDNAME3) -- 注释3 VALUES (FieldValue1, FieldValue2, FieldValue3);
或者
2013-03-28
第11页,共71页
INSERT INTO T_DEST_TABLE_NAME ( DESTFIELDNAME1, -- 注释1 DESTFIELDNAME2, -- 注释2 DESTFIELDNAME3) -- 注释3 VALUES (
FieldValue1, FieldValue2, FieldValue3);
或者
INSERT INTO T_DEST_TABLE_NAME (
DESTFIELDNAME1, -- 注释1 DESTFIELDNAME2, -- 注释2 DESTFIELDNAME3 -- 注释3 ) VALUES (
FieldValue1, FieldValue2, FieldValue3 );
其他说明:
1、 在规范的代码模板中详细给出了各种情况下的范例写法,请编码过程参考; 2、 在数据库脚本的编码过程中,请严格按照代码模板进行书写;
3、 对于模板中未涉及的情况,应在保证符合上述规范原则,同时和代码模板中的风格保
持一致的前提下,根据实际情况灵活处理。
3.3 空格及换行
规则:不允许把多个短语句写在一行中,即一行只写一条语句。 示例:
v_Variable1 := 1; v_Variable2 := 'abc';
应写成:
v_Variable1 := 1; v_Variable2 := 'abc';
2013-03-28 第12页,共71页
说明:两个赋值语句不能写在一行中,必须分两行写。
规则:相对独立的程序块之间、变量说明之后必须加空行。 示例:
v_Variable1 := 1;
IF v_BeginDate IS NULL THEN v_BeginDate := SYSDATE - 15; END IF;
应写成:
-- 初始化局部变量 v_Variable1 := 1;
-- 判断开始时间
IF v_BeginDate IS NULL THEN v_BeginDate := SYSDATE - 15; END IF;
说明:两个程序块在逻辑上相对独立,应用空行加以分隔,同时增加注释。
建议:建议对超过120字符的语句要分行书写,长表达式应在低优先级操作符处换行,操作符或关键字放在新行之首。划分出的新行应适当地缩进,使排版整齐、语句可读。是否分行应根据实际情况而定,原则是保证代码整齐、语句可读。 分行示例:
120字符 ↓
?? (a * b * c * d) + (e * f) + ??
应写成:
?? (a * b * c * d) + (e * f) + ??
说明:
1、 加法的优先级低于乘法,因此应在加号处换行;
2、 两组乘法虽然在逻辑上会先于加法执行,但显式加上括号使可读性更强。
规则:调用函数或过程时,如果参数列表超过120字符,应根据逻辑内容进行换行,或者每个参数占用一行。
2013-03-28
第13页,共71页
示例:
错误的写法:
120字符 ↓
P_PROCEDURE(i_Param1, i_Param2, i_Param3, o_Param1, oParam2, ...);
正确的写法A:
P_PROCEDURE(i_Param1, i_Param2, i_Param3, o_Param1, o_Param2, ...);
正确的写法B:
P_PROCEDURE(i_Param1, -- 注释 i_Param2, -- 注释 i_Param3, -- 注释 o_Param1, -- 注释 o_Param2, -- 注释 ...) -- 注释
说明:
1、 因为前三个为输入参数,后两个为输出参数,因此在第3、4参数之间换行比较清晰
(如正确的写法A);
2、 有时为了增加注释,可以使每个参数皆占用一行(如正确的写法B); 3、 参数换行以后与上一行的第一个参数对齐。
规则:双目运算符、操作符前后应以空格分隔,间隔符之后应以空格分隔。 示例:
v_DateVar:=TO_DATE('2001-01-01 01:30:00','YYYY-MM-DD HH24:MI:SS');
v_IntegerVar1:=v_IntegerVar2+v_IntegerVar3;
IF v_Number>0 THEN
应写成:
v_DateVar := TO_DATE('2001-01-01 01:30:00', 'YYYY-MM-DD HH24:MI:SS'); ↑ ↑ 赋值符前后加空格 逗号后面加空格
v_IntegerVar1 := v_IntegerVar2 + v_IntegerVar3; ↑ ↑ 赋值符前后加空格 加号前后加空格 2013-03-28
第14页,共71页
IF v_Number > 0 THEN ↑ 比较符号前后加空格
建议:不同优先级的操作符混合使用时,建议使用括号进行隔离。 示例:
?? a * b + c ??
应写成:
?? (a * b) + c ??
说明:使用括号使代码的优先级更加清晰,而且可以避免犯错。
建议:SQL语句中存在不同优先级的关系运算符时,建议使用括号。 示例:
WHERE FIELD1 > 1 AND FIELD2 < SYSDATE OR FIELD3 > SYSDATE + 3
应写成:
WHERE (FIELD1 > 1 AND FIELD2 < SYSDATE) OR (FIELD3 > SYSDATE + 3)
说明:如果SQL语句的条件复杂,很容易出现问题,因此增加括号可以提高可阅读性。
3.4 创建表
规则:脚本中的字段名缩进为4个空格。
规则:脚本中字段名称、字段类型、DEFAULT关键字应左对齐,NULL/NOT NULL应右对齐(也可以认为就是NULL关键字左对齐)。 示例:
CREATE TABLE T_WF_TABLE_NAME (
INTFIELD DATEFIELD )
TABLESPACE SERVICE_MAIN_DAT;
INT
NOT NULL, NOT NULL, NULL, NULL
FLOATFIELD NUMBER(4, 2)
DATE
VARCHAR2FIELD
DEFAULT 1.23
DEFAULT SYSDATE
VARCHAR2(200)
说明:至于每行中的每个项目之间使用多少个空格没有明确要求,只要求从纵向上各个字
2013-03-28
第15页,共71页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ORACLE编程规范(3)在线全文阅读。
相关推荐: