ITPub博客

首页 > 数据库 > Oracle > oracle数据库编程规范

oracle数据库编程规范

原创 Oracle 作者:ttxing 时间:2007-01-05 22:21:41 0 删除 编辑

第一部分 概述... 4

1 概述... 4

1.1 背景... 4

1.2 简介... 4

1.3 术语约定.... 4

1.4 适用范围.... 4

1.5 规范引用文件.... 4

第二部分 编程规范... 5

2 书写规范... 5

2.1 大小写风格.... 5

2.2 缩进风格... 5

2.3 空格及换行... 7

2.4 其它... 11

3、命名规范:... 13

3.1 对象命名汇总表... 13

3.2对象命名... 15

3.3变量命名... 16

3.4 表分区命名... 18

4、注释规范... 18

5、语法规范... 22

6、脚本规范... 24

7、性能优化... 24

8、设计规范... 27

8.1一般表设计... 27

8.2 特殊表设计原则... 28

8.3 索引设计原则... 28

8.4 完整性设计原则... 28

8.5 触发器... 29

8.6 视图设计... 29

8.7 包设计... 29

9文档规范... 29

9.1数据库设计及文档维护... 29

9.2 数据库接口文档... 29

10 开发工具... 30

11、附录1:范式... 30

11.1 第一范式... 30

11.2 第二范式... 31

11.3 第三范式... 31

11.4 Boyce-Codd范式... 31

11.5 第四范式... 31

11.6 第五范式... 31

11.7 反规范化... 31

第一部分 概述

1 概述

1.1 背景

1.2 简介

1.3 术语约定

本规范采用以下术语描述:

★规则:编程是强制必须遵守的原则

★建议:编程时必须加以考虑的原则

★说明:对此规则或建议进行必要的解释

★示例:对此规则或建议从正、反两个方面给出

1.4 适用范围

本规范适用于Oracle 8及以上版本

1.5 规范引用文件

第二部分 编程规范

2 书写规范

2.1 大小写风格

规则1.1.1:所有数据代码统一使用小写字母书写,也方便不同数据的移值。

说明:本人在看大写程序时,感觉比较痛苦。

示例:以下编码不符合规范

SELECT header_id FROM po_headers

DECLARE

v_count PLS_INTEGER;

应如下编写:

select header_id from po_headers

declare

v_count pls_integer;

2.2 缩进风格

规则2.2.1:程序块采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2个。

规则2.2.2:必须使用空格,不允许使用TAB键。

说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐。

规则2.2.3:同一条语句占用多于一行时,每行的第一个关键字应当左对齐。

示例:

select field1,field2,…

from t_tablename

where field1>1

and filed2

group by field1,filed2

order by field1,filed2

建议2.2.4:对于Insert … valuesupdate 语句,一行写一个字段,这段后面紧跟注释(注释语句左对齐),valuesinsert左对齐,左括号和右括号与insertvalues左对齐。

示例:

insert into sm_user

(

user_id, --用户ID,主键

user_name, --用户名

login_name --登录名

)

values

(

p_user_id,

p_user_name,

p_login_name

)

建议2.2.5insert…select语句时,应使每行的字段顺序对应,以每行最多不超过4个字段,以方便代码阅读,括号的内容另起一行缩进2格开始书写,关键字单词左对齐,左括号、右括号另起一行与左对齐。

示例,以下代码不符合此规范:

insert into sm_duty_bak(duty_id,duty_name,created_by,creation_date,

last_updated_by,last_update_date,disable_date)

select duty_id,duty_name,created_by,creation_date,

last_updated_by,last_update_date,disable_date

from sm_duty

where duty_id=:duty_id

应如下编写

insert into sm_duty_bak

(

duty_id,duty_name,created_by,creation_date,

last_updated_by,last_update_date,disable_date

)

select duty_id,duty_name,created_by,creation_date,

last_updated_by,last_update_date,disable_date

from sm_duty

where duty_id=:duty_id

说明:

1.select语句中每行的字段应与insert语句对应。

2.insert语中中折行的字段名应缩进并与上一行的第一个字段名对齐。

3.select语句中折行的字段名应缩进并与上一行的第一个字段名对齐。

2.3 空格及换行

规则2.3.1:不允许把多个语句写在一行中,即一行只写一条语句。

示例:以下书写不符合规范:

v_count :=1; v_creation_date := sysdate;

应写成:

v_count := 1;

v_creation_date := sysdate;

规则2.3.2:避免将SQL语句写到同一行,再短的语句也要在关键字和谓词处换行。

示例:以下书写不符合规范:

select duty_id,duty_name from sm_duty where duty_id = :duty_id

应写成:

select duty_id,

duty_name

from sm_duty

where duty_id = :duty_id;

规则2.3.3:相对独立的程序块之间必须加空行。<

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/621535/viewspace-888537/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-12-04

  • 博文量
    11
  • 访问量
    18073