Oracle编码规范
编码规范的意义:代码美观,易于阅读理解/降低维护成本/降低出错概率/提升代码执行效率
感触:简单才是美
1⃣命名
对象命名= 对象前缀+模块名+对象标识 v_act_custinfo
| 对象类型 | 对象前缀 | 格式 |
|---|---|---|
| 临时表 temporary table | t | |
| 视图 view | v | v_表名 |
| 序列 sequence | s | s_表名 |
| 索引 index | idx | idx_表名_每列首字母 |
| 主键 primary key | pk | pk_表名 |
| 过程 procedure | p | |
| 函数function | f |
变量命名 = 变量前缀+变量标识
| 变量类型 | 前缀 | 示例 |
|---|---|---|
| 局部变量 | v | v_begin_date |
| 输入输出参数 | p | p_oc_date |
常用英文简写(原则上简写应不产生歧义)
| 全写 | 简写 |
|---|---|
| information | info |
| customer | cust |
| description | desc |
| destination | dest |
| source | src |
| config | cfg |
| organization | org |
| control | ctrl |
| department | dept |
| employee | emp |
| business | biz |
通常不应使用数字/特殊字符来定义标识符
避免使用数据库关键字&保留字 如: count
长度<=30个字符
2⃣书写
缩进
1 缩进2空格,同一条语句中每个关键字单独成行,右对齐

换行
1 段语句单独成行
2 程序块之间用一个空行隔开
3 较长语句适当换行
4 在低优先级操作符处,操作符放在行首,并适当缩进
5 关键字独立成行:DECLARE AS RETURN BEGIN END EXCEPTION
格式
1 除字符串外,统一使用小写字符书写
2 操作符前后应以空格分隔,间隔符之后应以空格分隔

3 insert语句中,select中的字段应与insert中的字段在位置上——对应

3⃣注释
1 脚本文件、函数、过程头部应加注释
2 注释内容包括:创建者、创建日期、功能描述、修改记录等
3 注释应紧靠其描述的代码,在代码的上方或者右方
4 注释与所描述的代码进行同样的缩进
5 通过对函数、过程、变量等进行合理命名,使其成为自注释的
4⃣语法
1 使用SQL99语法标准,连接条件写在 on 里,过滤条件写在 where 里
2 不允许使用 select *,将需要的字段一一列出
3 insert语句中必须列出要插入的字段名
4 当sql中涉及多个表时,字段名应+前缀表名/表别名,别名不要重复
5 尽量使用静态sql,少用动态sql
6 使用通用语法和函数. 如用 case 代替 decode (Oracle特有函数,放到MySQL里就不会识别)
7 不使用 goto (跳跃性)语句来控制流程
8 少用游标(代码效率差)
5⃣优化
1 where中应避免隐式转换,避免对索引列使用丞数

2 表的更新操作用 merge 代替 update
3 避免函数频繁执行
4 尽量避免使用 or 操作符
5 动态sql应使用绑定变量
6 判断存在性时,要加上 rownum=1
7 变量赋值尽量用 :=,比 select into 快