1.2 书写规范
丑陋的书写规范不仅可读性较差,而且给人以敬而远之的感觉,就算你是大侠也不行;而良好的书写规范则给人以享受和艺术的体验。
1.2.1 大小写风格
规则1.2.1.1
所有数据库关键字和保留字均使用大写;关于字段、变量的大小写风格在1.4节详细介绍。
1.2.2 缩进风格
规则1.2.2.1
程序块严格采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2/4个。
必须使用空格,不允许使用【Tab】键。以免在用不同的编辑器阅读程序时,因【Tab】键所设置的空格数目不同而造成程序布局不整齐。
规则1.2.2.2
当同一条语句需要占用多于一行时,每行的其他关键字与第一行的关键字进行右对齐。
IF flag=1 THEN SELECT username --同上一行相比缩进4个空格 INTO vuserinfo --INTO与SELECT进行右对齐 FROM userinfo --FROM与SELECT进行右对齐 WHERE userid=:iuserid; --WHERE与SELECT进行右对齐 END IF;
1.2.3 空格及换行
规则1.2.3.1
不允许把多个语句写在一行中,即一行只写一条语句。
规则1.2.3.2
避免将复杂的SQL语句写到同一行,建议要在关键字和谓词处换行。
规则1.2.3.3
相对独立的程序块之间必须加空行。
BEGIN、END独立成行。
规则1.2.3.4
太长的表达式应在低优先级操作符处换行,操作符或关键字放在新行之首。划分出新行应当适当地缩进,使排列整齐,语句可读。
当不同类型的操作符混合使用时,建议使用括号进行隔离,以使代码清晰。
规则1.2.3.5
减少控制语句的检查次数,例如,在IF…ELSE控制语句中,应将最常用的符合条件前置以被检查到。
DECLARE --定义局部变量 vFlag VARCHAR2(10); --判断标志 … BEGIN IF ((a=b AND a=c AND a=d) OR --在OR处断行,可使得逻辑更为清晰 (a=e AND e=f)) THEN --Process something IF vFlag=1 THEN --vFlag=1为经常出现的条件,可有效减少判断检查次数 --Process something ELSIF vFlag=2 THEN --vFlag=2为次之出现的条件 --Process something ELSE --Process something END IF;
1.2.4 其他
规则1.2.4.1
避免使用SELECT * 语句;不要用*来代替所有字段,应给出字段列表,以避免在表结构发生变化时应用程序出现无法识别的情况。
规则1.2.4.2
INSERT语句必须给出字段列表,以避免在表结构发生变化时发生编译错误。
规则1.2.4.3
当一个PL/SQL或SQL语句中涉及多个表时,始终使用别名来限定表名和字段名,这使其他人阅读起来更方便,避免了含义模糊的引用,并能够在别名中清晰地判断出表名和相关字段名。
规则1.2.4.4
确保变量和参数在类型和长度上与表数据列相匹配。如果与表数据列宽度不匹配,则当较宽或较大的数据传进来时会产生运行异常。
DECLARE --定义相关表字段变量 vDeptNo salary.Deptno%type; --not VARCHAR2(10),以适应变化 vEmployeeNo salary.EmployeeNo%type; --not VARCHAR2(10),以适应变化 vSalary salary.Salary%type; --not NUMBER,以适应变化 BEGIN --Process something END;