Oracle数据库编程规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密级

公开()普通(√)秘密()机密()绝密()

Oracle数据库编程规范

文档编号:<文档编号(按照文档编码规范)>

文档归类:<文档归类>

作者:李程扬

创建时间:2005-11-14

修改时间:2005-11-15

版本号:v1.0

文档传阅:

一、数据库对象创建及命名规范

1、数据库字段及对象命名规范

a.数据库命名规范与PB编程规范对命名方式的约定可相互参照;

b.命名单词间分隔用下划线[_],尽可能使用与业务相匹配的单词或其缩写;

c.绝对不允许使用拼音首码及简单数字的命名方式;

d.Oracle对于对象或字段名称长度有限制,最多31个字符;

2、字段定义及类型说明

a.字段定义仅能使用以下类型

i.date:日期时间类型,存入日期字段的数据若未指明时间,时间缺省

就是[00:00:00];若未指明日期,则日期缺省是[1900-01-01];对于年份

[number(4,0)]与月份[number(6,0)]这类数据,一般用number类型定义;

ii.number:数值类型,字段所占空间与每一行数据相关,即有多少存多少;要注意其定义小数位是包含在总长度中,如number(12,2)——总长

度为12位,其中小数占2位;

iii.char:定长字符串类型,不论字符串信息多少都要占用所定义长度的空间,不足的部分用空格填充;对于一些更新操作比varchar2效率高;

长度限制为255;

iv.varchar2:非定长字符串类型,字符串信息多少就占多少空间,所以对于此类型数据在存入数据库前要去空格,以防止多余空格造成字段关联

错误;相比char可节省很多存储空间,某种程序上可提高网络传输效率;

长度限制为4000个字符;

v.clob:一般存大于4000个字节的字符串信息,如数据窗口的语法;

vi.blob:一般存二进制数据,如图片;

b.对于字符串类型,除数据固定长度字段(如char(1)、SICK_ID),其它情况都

必须使用varchar2类型;

c.对于number与varchar2类型,在定义时要预留足够的长度,因为这两种类型

都是按实际数据来分配存储空间,这样才能避免数据需求变长,字段长度修改

造成程序错误(数据窗字段及数值变量小数位定义);

d.应尽量使用number类型定义代码、状态字段;相比char或varchar2,这可

最大程度地节省空间,并可显著提度检索效率;当然,同类型已定义的字段,

为兼容原先设计,还是必须使用旧的类型定义;

e.字段命名约定

i.字段名称不必像PB变量使用前缀来标识其数据类型;

ii.字段常用后缀如下

ID/No表示唯一的序列号标识;其中ID多用于表示对人或物的标识,即指的是一种标志(如Sick_ID);而No多用于对连续号

或流水号的标识(如单据号Apply_No)

Code 表示项目代码(如项目代码Item_Code)

Name 表示名称(如项目名称Item_Name)

Class 表示类别(如单据类别Apply_Class)

Operator 表示操作员(类型用varchar(27),如Apply_Operator)

Time 表示日期或日期时间(如Audit_Time)

Dept 表示科室(如开单科室Apply_Dept)

Flag 表示标志(字段类型用char(1),值为Y或N)

Status 表示状态(字段类型用char(1))

iii.常见业务字段名称及类型定义如下

3、数据库对象定义说明:创建对象时一定要指定是在哪个模式下面

a.表

i.下面列出建表步骤(一般在PB6中新建表,再拷出相应建表语法)

建表语法

创建主键及索引

创建同义词

对象授权(所有新建对象都必须授权给zhiydba)

ii.对于表命名有以下常用后缀

_master:主表

_detail:细表

_record:记录表

_dict:系统字典/用户字典

_config:用户配置表

iii.不推荐使用表外键约束,也不推荐除空值以外的其它约束检查,这类约束判断一般在程序中处理;

b.主键:一种特殊的索引

i.主键名都是以pk_作为前缀,后面一部分用表名,即pk_+表名

ii.所有表都必须创建主键,否则这些表就没办法做更新操作

c.索引

i.索引名以idx_作为前缀,后面一部分用表名+索引相关列名或其缩写

ii.创建索引时一定要记得指明其所在模式(一般与表在同一模式下),这一点程序员常会遗漏;

iii.索引也要区分是唯一索引还是可重复索引;

iv.要查询的列尽可能创建索引,一般不推荐使用多列组合索引,而应分开建立索引;如病人ID或查询时间字段;另外,用到组合索引时要注意

索引列的顺序;

v.一个表索引最多不能超过7个,否则会影响数据更新效率,且占用存储空间,即:索引越多、查询效率高、但更新操作慢、存储占用高;

vi.对于值内容单一(如只有0与1)或大部分数据是空值的字段不用建索引;对于某些数据量很少的表(如字典),也是不用建索引;

d.视图:其命名以v_作为前缀,统一建在zhiydba模式下(可省去授权)

e.序列号:其命名以_seq作为后缀,统一建在zhiydba模式下;主要用于数据

表的主键字段取唯一值(如单据号),对于字典代码就没必要用序列号;

f.同义词:创建相应对象的同义词主要是便于编程(public),做到对象模式无关

g.用户:即模式

h.函数及存储过程:除非开放接口给其它软件供应商,否则不使用这两类对象,

因为包(package)就可代替其功能,并便于分类组织;

i.后台包/Java包:不用深入了解,知道有这些东西就可;

j.后台任务(Job):后台计划任务执行,通过dba_jobs可查询当前在执行任务;

k.触发器:Oracle的触发器一般都认为在事务处理上不安全,所以除非特殊接口,否则不准使用触发器;

二、Oracle常用函数

1、Oracle的PL/SQL语言是对SQL的过程性语言扩展,当前Oracle的SQL语法遵循

SQL92标准;

2、完整PL/SQL函数集可查阅

\\Research\ZHIS4_Tools\Database\Oracle8i资料\doc\server.816\a76989\toc.htm

3、字符串相关函数

a.||:字符串合并操作符

相关文档
最新文档