一、对象编码规范
表 table t_/tbl_ 或者不加前缀。
视图view v_/v
序列 sequence seq_
蔟 cluster c_
触发器 trigger trg_
存储过程 procedure sp_/p_/proc_
函数 function fn_/f_
物化视图 materialized view mv_
包或者包体 package & package body pkg_
类或者类体 type &type body typ_
主键 primary key pk_
外键 foreign key fk_
唯一索引 unique index uk_
普通索引 normal index idx_
位图索引 bitmap index bk_
同义词 synonym 主要依据分配表所属的模块或者模式
数据库连接 database link 无特殊要求
二、变量命名
输入变量 i_/i
输出变量 o_/o
输入输出变量 io_/io
普通变量 v_/v
全局变量 gv_/gv
常量 大写
游标 cur_
用户自定义类型 type_
保存点(save point) spt_
三、sql语句结构
1、避免使用方言,decode完全可以用case when 语句代替,这样编码性更强。
(+)=又关联用right outer join
(- )=左关联用left outer join
2、复杂的sql(特别是多层嵌套、带子句或者相关的查询),应该考虑是否由于涉及不当引起的,对于复杂的sql可以考虑使用程序实现,原则上遵循一句话只做一件事情。
静态sql>动态sql
绑定变量的sql>动态sql(在oltp系统中建议这么做)
sql>pl/sql的过程,极端的sql除外。
sql>游标遍历。
oracle函数>自定义函数。
用oracle的分析函数代替统一表多次的关联。
3、一定要又异常处理
exception
when other then
rollback to savepoint spt_xxx;
v_err_num:=sqlcode;
v_err_msg=substr(sqlerrm,1,100);
insert /update ;
commit;
end ;
四、部署的顺序
1、创建数据库角色,用户脚本
2、创建数据库表空间,数据文件脚本。
3、创建数据类型脚本,自定义数据类型。
4、创建业务表脚本,表四其他依赖关系的基础。
5、创建临时表脚本,可能会在过程脚本中用到。
6、创建视图脚本。
7、创建主外键脚本。
8、创建索引脚本。
9、创建触发器脚本。
10、创建函数,存储过程脚本。
11、创建初始化数据脚本。
12、创建job脚本。
应该将脚本按照功能存放到不同的目录下,并在相应的目录下创建一个运行所有脚本的总脚本。
原文地址:http://blog.csdn.net/zzuiezhangqihui/article/details/6273023