一、對象編碼規範
表 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