首页 > 文库大全 > 精品范文库 > 15号文库

oracle命名规范

oracle命名规范



第一篇:oracle命名规范

1、编写目的

使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

2、适用范围

本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

3、对象命名规范 3.1 数据库和SID 数据库名定义为系统名+模块名

Ø

全局数据库名和例程SID名要求一致

Ø

因SID名只能包含字符和数字,所以全局数据库名和SID名中不能含有“_”等字符

3.2 表相关 3.2.1 表空间

Ø

面向用户的专用数据表空间以用户名+_+data命名,如Aud用户专用数据表空间可命名为Aud_data Ø

面向用户的专用索引表空间以用户名+_+idx命名 Ø

面向用户的专用临时表空间以用户名+_+tmp命名 Ø

面向用户的专用回滚段表空间以用户名+_+rbs命名

Ø

面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs命名 Ø

LOB段数据专用表空间以其数据表空间+_+lobs命名,如上例中数据表空间为Aud_data,则LOB段表空间可命名为Aud_data_lobs 3.2.2 表空间文件

表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01等 3.2.3 表

表命名要遵循以下原则:

Ø

一般表采用“系统名+t_+模块名+_+表义名” 格式构成

Ø

若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成

Ø

模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;

Ø

表别名命名规则:取表义名的前3个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)Ø

临时表采用“系统名+t_tmp_+表义名” 格式构成 Ø

表的命名如

dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap)dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj)

dft_tmp_hj: 系统名(电费 df)+tmp+表义名(合计hj)(此处为临时表)Ø

关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。

3.2.4 属性(列或字段)属性命名遵循以下原则:

Ø

采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符

Ø

属性名前不要加表名等作为前缀 Ø

属性后不加任何类型标识作为后缀 Ø

不要使用“ID”作为列名 Ø

关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行 3.2.5 主键

Ø

任何表都必须定义主键 Ø

表主键命名为:“pk+_+表名(或缩写)+_+主键标识” 如“pk_YHXX_IDKH”等 3.2.6 外键

表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识” 如“fk_YHLX_YHXX_SFZH”等 3.2.7 CHECK约束

CHECK约束命名为: “chk+_+CHECK约束的列名(或缩写)” 3.2.8 UNIQUE约束

UNIQUE约束命名为: “unq+_+UNIQUE约束的列名(或缩写)” 3.2.9 索引

索引的命名为:“表名(或缩写)+_+列名+_idx”。

其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成 如yd_kh表khid上的index: yd_kh_khid_idx 3.2.10 触发器

Ø

AFTER型触发器

系统名+tr_+<表名>_+ +[_row] Ø

BEFORE型触发器

系统名+tr_+<表名>_+bef_+[_row] Ø

INSTEAD OF型触发器

系统名+ti_+<表名>+_++[_row] Ø

各种类型的触发器中 i,u,d分别表示insert、update和delete 行级触发器,后加_row标识,语句级触发器不加,如 yddftr_CSH_i_row 3.2.11 簇

簇以簇中要存储的各个表(或表别名)及表间加and的组成命名,即表“A+And+表B„”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN 3.3 视图

视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似 3.4 序列

序列命名以seq_+含义名组成 3.5 同义词

同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀 3.6 存储对象相关 3.6.1 存储过程

存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成

存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。3.6.2 函数

函数命名由“系统名+f+_+函数标识”组成 3.6.3 包

包命名由“系统名+pkg+_+包标识”组成 3.6.4 函数文本中的变量采用下列格式命名:

Ø

参数变量命名采用“i(o或io)+_+名称”形式,前缀i或o表输入还是输出参数 Ø

过程变量命名采用“l+_+名称”形式 Ø

全局包变量命名采用“g+_+名称”形式 Ø

游标变量命名采用“名称+_+cur”形式 Ø

常量型变量命名采用“c+_+名称”形式

Ø

变量名采用小写,若属于词组形式,用下划线分隔每个单词

Ø

变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化 3.7 用户及角色

Ø

用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成 Ø

角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成 3.8 数据库链接

Ø

数据库链接命名由“远程服务器名+_+数据库名+_+link”组成 Ø

若远程服务器名和数据库名一致,上式“_+数据库名”部分省去 3.9 命名中的其它注意事项

Ø

命名都不得超过30个字符。Ø

不要在对象名的字符之间留空格

Ø

小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突

4、编码规范 4.1 一般性注释

4.1.1 注释尽可能简洁、详细而全面

4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON注释如下

COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出' 4.1.3 注释语法包含两种情况:单行注释、多行注释 单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。多行注释:符号之间的内容为注释内容。对某项完整的操作建议使用该类注释。4.2 函数文本注释

4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释 CREATE [OR REPLACE] PROCEDURE dfsp_xxx „

4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

4.2.3 在每一个变量声明的旁边添加注释。说明该变量要用作什么 通常,简单使用单行注释就行了,例如

l_sfzh CHAR(11)

--身份证号码 4.2.4 在块的每个主要部分之前添加注释 在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息 4.3 常用SQL语句的编写规范 4.3.1 CREATE语句

CREATE TABLE dft_dksz(YHBS

VARCHAR2(20)

NOT NULL,ZHGX

DATE,DKKHD

VARCHAR2(24),CONSTRAINT pk_dksz_yhbs PRIMARY KEY(YHBS))

4.3.2 SELECT语句

查询语句采用以下原则编写(可最大化重用共享池中的SQL语句,提高应用程序性能): Ø

将SELECT语句分为5部分:(1)由SELECT开头,后跟一个显示查询结果的列表;

(2)由FROM开头,后跟一个或多个获取数据所涉及的表;(3)由WHERE开头,后跟一个或多个确定所需值的条件;

(4)由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;(5)由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。Ø

每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 SELECT col1, col2, col3

FROM table1 WHERE col1 > col2 GROUP BY col1, col2 ORDER BY col1;Ø

关键字用大写,列名和表名采用小写

Ø

语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行

Ø

当语句的同一部分要延续到下一行时,按下列格式排列: SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10 Ø

将语句中WHERE和AND部分格式化,书写布局类似于 WHERE

AND

AND Ø

当语句中出现括号时,括号的两边不留空格

Ø

在SQL语句使用运算符时,操作两边应各留一个空格,如 WHERE X = Y

AND A = B

AND C = D 4.3.3 INSERT语句

INSERT INTO <要插入的表名>

(<列1>, <列2>,.., <列n-1>, <列n>)

VALUES

(<列1值>, <列2值>,.., <列n-1值>, <列n值>)4.3.4 UPDATE语句

UPDATE <要更新的表名>

SET <要更新的列> = <列值> 4.3.5 DELETE语句 DELETE FROM table1 WHERE col1 = '???' 4.4 条件执行语句(IF)编写规范

条件执行语句IF„ELSE按以下格式编写 IF <条件表达式> THEN

<一条或多条语句> [ELSE(或ELSIF<条件表达式>)THEN

<一条或多条语句> END IF;注:(1)

在IF„THEN和ELSE(或ELSIF)及ELSE„THEN和END IF间可包含一条或多条PL/SQL语句,而不需要加BEGIN和END(2)

IF„ELSE„ENDIF语句可以嵌套(3)

注意ELSIF的写法 4.5 循环语句编写规范 4.5.1 简单循环语句 LOOP

<零条或多条语句> EXIT WHEN <条件表达式>

<零条或多条语句> END LOOP;4.5.2 FOR循环语句

FOR 变量 IN [变量取值范围] LOOP

<一条或多条语句> END LOOP;4.5.3 WHILE循环语句 WHILE <条件表达式> LOOP

<一条或多条语句> END LOOP;4.6 函数文本(存储过程、函数和包等)

Ø

对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下: BEGIN

„ EXCEPTION WHEN excep—name1 THEN

WHEN excep—name2 THEN

„ WHEN OTHERS THEN

END;Ø

对于子程序、触发器、包等带名的程序块,要使用结束标识,如 CREATE OR REPLACE PROCEDURE XXXsp_XXX IS

„ BEGIN

END XXXsp_XXX;

第二篇:oracle 命名空间详解

一.初识Namespace Oracle通过namespace来管理schema object的名字,关于Namespace 的定义,在官网文档上没有找到一个详细的定义,在网上搜到一些相关信息:

SchemaObject Namespaces

A namespace defines a group of object types, within whichall names must be uniquely identified—by schema and name.Objects in differentnamespaces can share the same name.The Oracle database usesnamespaces to resolve schema object references.When you refer to an object ina SQL statement, Oracle considers the context of the SQL statement and locatesthe object in the appropriate namespace.After locating the object, Oracleperforms the operation specified by the statement on the object.If the named object cannot be found in the appropriate namespace,then Oracle returns an error.Because tables and views are in the same namespace, a table and a view inthe same schema cannot have the same name.However, tables and indexesare in different namespaces.Therefore, a table and an index in the same schemacan have the same name.Eachschema in the database has its own namespaces for the objects it contains.Thismeans, for example, that two tables in different schemas are in differentnamespaces and can have the same name.--以上解释提到了几点:

1.每个用户都有自己对应的namespace来保存自己的对象

2.表和视图存放在同一个namespace,所以对于同一个用户的表和视图不能重名,但是表和索引是存放在不同的namespace,所以可以重名。

开始时,我们提到Oracle 通过schema 和 name 来保证namespace中对象的唯一性。在obj$ 字典里owner# 对应用户的ID。通过如下SQL,我们可以查看他们之间的对应关系:

/* Formatted on 2011/7/21 15:41:26(QP5 v5.163.1008.3004)*/

SELECT username,user_id FROM dba_users WHERE user_id IN(SELECT DISTINCTowner# FROM obj$);USERNAME USER_ID-----------------------------------SYS 0 SYSTEM 5

DBSNMP 24 SYSMAN 58 DAVE 61 OUTLN 11 MDSYS 46 ORDSYS 43 CTXSYS 36 EXFSYS 34 DMSYS 35 WMSYS 25 XDB 38 ORDPLUGINS 44 SI_INFORMTN_SCHEMA OLAPSYS 47 SCOTT 54

ORACLE_OCM 55 TSMSYS 21 19 rows selected.一个小示例验证以上结论:

SYS@anqing2(rac2)> createtable anqing(id number);Table created.SYS@anqing2(rac2)>create index anqing on anqing(id);Index created.SYS@anqing2(rac2)>create view anqing as select * from anqing;create view anqing asselect * from anqing * ERROR at line 1: ORA-00955: name isalready used by an existing object

以下类型的对象使用同一个namespace:

• Tables • Views • Sequences • Private synonyms • Stand-alone procedures • Stand-alone stored functions • Packages

• Materialized views • User-defined types

如下类型的对象使用自己的namespace:

• Indexes • Constraints • Clusters

• Database triggers • Private database links • Dimensions

以下Non schema objects 使用自己的namespace:

• User roles • Public synonyms • Public database links • Tablespaces • Profiles

• Parameter files(PFILEs)and server parameter files(SPFILEs)以上信息随Oracle 版本不同,可能有出入。

二.深入研究Namespace 先执行如下SQL,查看每个namespace 对应名称和它所包含的对象的个数:

/* Formatted on 2011/7/21 14:24:47(QP5 v5.163.1008.3004)*/

SELECTnamespace,object_type, COUNT(*)FROM(SELECTnamespace, DECODE(o.type#, 0, 'NEXTOBJECT', 1, 'INDEX',2, 'TABLE', 3, 'CLUSTER', 4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE', 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 11, 'PACKAGEBODY', 12, 'TRIGGER', 13, 'TYPE', 14, 'TYPEBODY', 19, 'TABLEPARTITION', 20, 'INDEX PARTITION', 21, 'LOB',22, 'LIBRARY', 23, 'DIRECTORY', 24, 'QUEUE', 28, 'JAVASOURCE', 29, 'JAVACLASS', 30, 'JAVARESOURCE', 32, 'INDEXTYPE', 33, 'OPERATOR', 34, 'TABLESUBPARTITION', 35, 'INDEXSUBPARTITION', 40, 'LOBPARTITION', 41, 'LOBSUBPARTITION', 42, 'MATERIALIZEDVIEW', 43, 'DIMENSION', 44, 'CONTEXT',46, 'RULESET', 47, 'RESOURCEPLAN', 48, 'CONSUMERGROUP', 51, 'SUBSCRIPTION', 52, 'LOCATION', 55, 'XMLSCHEMA', 56, 'JAVADATA', 57, 'SECURITYPROFILE', 59, 'RULE', 62, 'EVALUATIONCONTEXT', 'UNDEFINED')object_type FROM sys.obj$ o)GROUP BYnamespace,object_type;NAMESPACE OBJECT_TYPE COUNT(*)

--------------------------------------4 INDEX 2253 2 TYPE BODY 175 51 UNDEFINED 6 21 CONTEXT 5 9 DIRECTORY 6 1 SYNONYM 20122 1 PACKAGE 859 1 VIEW 3684 1 PROCEDURE 98 3 TRIGGER 164 38 EVALUATION CONTEXT 12 1 SEQUENCE 138 2 PACKAGE BODY 804 1 INDEXTYPE 10

TYPE 1953 24 RESOURCE PLAN 3 4 INDEX PARTITION 144 25 XML SCHEMA 1 TABLE 8 LOB 10 QUEUE 23 RULE SET 8 LOB PARTITION 36 RULE 1 JAVA CLASS 1 NEXT OBJECT 1 FUNCTION 1 UNDEFINED 1 LIBRARY 25

1619

541

16450

268

660

154

JAVA DATA 298 5 CLUSTER 10 24 CONSUMER GROUP 5 1 TABLE PARTITION 124 1 OPERATOR 57 14 JAVA RESOURCE 775 35 rows selected.通过这个查询结果,我们可以看到一些对象使用相同的namespace。第一列的数字代表的就是namespace。关于type#的定义,在Oracle的obj$基表创建的定义SQL 有明确的说明。

先在$ORACLE_HOME/RDBMS/admin/bin 下查找sql.bsq脚本。sql.bsq主要记录了ORACLE中的系统字典表的定义,比如过tab$,col$,obj$ 等,通过查询这个文件可以知道数据字典表的定义.在sql.bsq里面保存了相关的脚本信息,其中就有dcore.bsq 脚本,在该脚本里就可以找到obj$ 表的定义SQL:

/* Formatted on 2011/7/21 14:42:51(QP5 v5.163.1008.3004)*/

CREATE TABLE obj$ /*object table */

(obj# NUMBER NOT NULL, /*object number */

dataobj# NUMBER, /*data layer object number */

owner# NUMBER NOT NULL, /*owner user number */

name VARCHAR2(“M_IDEN”)not null, /* object name */

namespace number not null, /* namespace of object(see KQD.H):*/

/* 1 = TABLE/PROCEDURE/TYPE, 2 =BODY, 3 = TRIGGER, 4 = INDEX, 5 = CLUSTER, */

/* 8 =LOB, 9 = DIRECTORY, */

/* 10 = QUEUE, 11 = REPLICATIONOBJECT GROUP, 12 = REPLICATION PROPAGATOR, */

/* 13 = JAVA SOURCE, 14 = JAVARESOURCE */

/* 58=(Data Mining)MODEL */

subname varchar2(“M_IDEN”), /* subordinate tothe name */

type# number not null, /* object type(see KQD.H): */

/* 1 =INDEX, 2 = TABLE, 3 = CLUSTER, 4 = VIEW, 5 = SYNONYM, 6 = SEQUENCE, */

/* 7 =PROCEDURE, 8 = FUNCTION, 9 = PACKAGE, 10 = NON-EXISTENT, */

/* 11= PACKAGE BODY, 12 = TRIGGER, 13 = TYPE, 14 = TYPE BODY, */

/* 19= TABLE PARTITION, 20 = INDEX PARTITION, 21 = LOB, 22 = LIBRARY, */

/* 23= DIRECTORY , 24 = QUEUE, */

/* 25= IOT, 26 = REPLICATION OBJECT GROUP, 27 = REPLICATION PROPAGATOR, */

/* 28= JAVA SOURCE, 29 = JAVA CLASS, 30 = JAVA RESOURCE, 31 = JAVA JAR, */

/* 32= INDEXTYPE, 33 = OPERATOR , 34 = TABLE SUBPARTITION, */

/* 35= INDEX SUBPARTITION */

/* 82=(Data Mining)MODEL */

/* 92= OLAP CUBE DIMENSION, 93 = OLAP CUBE */

/* 94= OLAP MEASURE FOLDER, 95 = OLAP CUBE BUILD PROCESS */

ctime date not null, /*object creation time */

mtime date not null, /* DDLmodification time */

stime date not null, /* specificationtimestamp(version)*/

status number not null, /* status ofobject(see KQD.H): */

/* 1 =VALID/AUTHORIZED WITHOUT ERRORS, */

/* 2 =VALID/AUTHORIZED WITH AUTHORIZATION ERRORS, */

/* 3 =VALID/AUTHORIZED WITH COMPILATION ERRORS, */

/* 4 =VALID/UNAUTHORIZED, 5 = INVALID/UNAUTHORIZED */

remoteowner varchar2(“M_IDEN”), /* remote ownername(remote object)*/

linkname varchar2(“M_XDBI”), /* link name(remote object)*/

flags number, /* 0x01 = extentmap checking required */

/*0x02 = temporary object */

/*0x04 = system generated object */

/*0x08 = unbound(invoker's rights)*/

/*0x10 = secondary object */

/*0x20 = in-memory temp table */

/*0x80 = dropped table(RecycleBin)*/

/*0x100 = synonym VPD policies */

/*0x200 = synonym VPD groups */

/*0x400 = synonym VPD context */

/*0x4000 = nested table partition */

oid$ raw(16), /* OID for typedtable, typed view, and type */

spare1 number, /* sqlversion flag: see kpul.h */

spare2 number, /*object version number */

spare3 number, /*base user# */

spare4 varchar2(1000), spare5 varchar2(1000), spare6 date)storage(initial 10k next 100k maxextents unlimited pctincrease 0)

在obj$ 这个字典里面,保存的是namespace的ID。他们之间的对应关系在obj$里有说明。

namespace number not null, /* namespace ofobject(see KQD.H): */ = TABLE/PROCEDURE/TYPE, = BODY, = TRIGGER, = INDEX, = CLUSTER, = LOB, = DIRECTORY, = QUEUE, = REPLICATION OBJECT GROUP, 12 = REPLICATION PROPAGATOR, = JAVA SOURCE, = JAVA RESOURCE

=(Data Mining)MODEL

查看obj$中共有多少个不同的namespace:

SYS@anqing2(rac2)> select distinctnamespace from obj$ order by namespace;NAMESPACE----------1 2 3 4 5 8 9 10 14

23 24 25 32 36 38 51 17 rows selected.SYS@anqing2(rac2)> select distinct namespace from v$librarycache;

NAMESPACE---------------BODY JAVA DATA

SQL AREA OBJECT PIPE JAVA RESOURCE TABLE/PROCEDURE TRIGGER INDEX JAVA SOURCE CLUSTER 11 rows selected.注意:

在这里有一个问题,我们通过distinct obj$ 和distinct v$librarycache 查看的值不对应,而且这个值与我们obj$的注释也不一致。这个问题是关键,因为它可以引出到底Namespace 是什么。

看一下DSI405里对library cache object所属于的namespace的定义:

1.Library cache objects are grouped in namespaces according to their type.2.Each object can only be of one type.3.All the objects of the same type are in the same namespace.4.A namespace may be used by more than one type.5.The most important namespace is called cursor(CRSR)and houses the shared SQL cursors.通过这段解释,我们可以看出,我们之前通过obj$ 看到的namespace 是不全的,因为像shared cursor这样的library cache object根本就不在obj$里。

可以这样来理解Namespace:

Namespace是针对缓存在library cache里的library cache object来说的。

我们之前在obj$里也有namespace的定义,是因为library cache object有一部分的来源就是来自于数据库里已经存在的、固化的object的metadata。

在DSI405中关于library cache object所属于的namespace的详细说明:

Currentlythere are 64 different object types but this number may grow at any time withthe introduction of new features.Examples of types are: cursor, table,synonym, sequence, index, LOB, Java source, outline, dimension, and so on.Not every type corresponds to a namespace.Actually, thereare only 32 namespaces which, of course, are also subject to increase at anytime.Youcan see the list of namespaces in the library cache dump.Whatis a certainty is that all the objects of the same type will always be storedin the same namespace.An object can only be of one type, hence the search foran object in the library cache is reduced to a search for this object in thecorresponding namespace.Somenamespaces contain objects of two or three different types.These are some of themost commonly used namespaces:

CRSR: Stores library objects of type cursor(sharedSQL statements)

TABL/PRCD/TYPE: Stores tables, views, sequences,synonyms, procedure specifications, function specifications, packagespecifications, libraries, and type specifications

BODY/TYBD: Stores procedure, function, package, and typebodies

TRGR: Stores library objects of type trigger

INDX: Stores library objects of type index

CLST: Stores library objects of type cluster

The exact number and name of namespaces in use depends on theserver features that are used by the application.For example, if theapplication uses Java, namespaces like JVSC(Java source)and JVRE(Javaresource)may be used, otherwise they will not be used.Note: These namespaces do not store tables, clusters, orindexes as such, only the metadata is stored.在obj$的注释里提到了KQD.H文件,这个是Oracle 的源代码,我们看不到它的内容,虽然这里面有我们所有namespace 和其对应的namespace id。不过我们可以dump library cache,来查看该版本下所有namespace 的名称。版本不同,namespace 也可能不同。

--查看Oracle 版本

SYS@anqing2(rac2)> select * fromv$version where rownum=1;BANNER--Oracle Database 10gEnterprise Edition Release 10.2.0.4.0Production With the Partitioning, Real ApplicationClusters, OLAP, Data Mining and Real Application Testing options ORACLE_HOME =/u01/app/oracle/product/10.2.0/db_1 System name: Linux Node name: rac2 Release: 2.6.18-194.el5 Version: #1 SMP Tue Mar 16 21:52:43 EDT 2010 Machine: i686 Instance name: anqing2 Redo thread mounted by this instance: 2 Oracle process number: 23 Unix process pid: 18783, image: oracle@rac2(TNS V1-V3)

*** 2011-07-21 19:23:32.578 *** ACTION NAME:()2011-07-21 19:23:32.574 *** MODULE NAME:(sqlplus@rac2(TNS V1-V3))2011-07-21 19:23:32.574 *** SERVICE NAME:(SYS$USERS)2011-07-2119:23:32.574 *** SESSION ID:(128.4091)2011-07-2119:23:32.574 LIBRARY CACHE STATISTICS:

namespace gets hit ratio pins hit ratio reloads invalids----------------------------------------------------------------------CRSR 164017 0.978 4693745 0.999 373 123 TABL 62538 0.966 1408421 0.868 182957 0 BODY 1575 0.970 1937 0.967 8 0 TRGR 231 0.818 284 0.852 0 0 INDX 60 0.183 107 0.430 4 0 CLST 281 0.954 720 0.982 0 0 KGLT 0 0.000 0 0.000 0 0

PIPE 0 0.000 0 0.000 0 0 LOB 0 0.000 0 0.000 0 0 DIR 2 0.500 4 0.500 0 0 QUEU 3 0.000 OBJG 0 0.000 PROP 0 0.000 JVSC 0 0.000 JVRE 0 0.000 ROBJ 0 0.000 REIP 0 0.000 CPOB 0 0.000 EVNT 15773 1.000 SUMM 0 0.000 DIMN 0 0.000 CTX 0 0.000 13 0.462 1 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

15915 0.999 1 0

0 0.000 0 0

0 0.000 0 0

0 0.000 0 0

OUTL 0 0.000 0 0.000 0 0 RULS 1 0.000 3 0.667 0 0 RMGR 32159 1.000 39619 1.000 1 0 XDBS PPLN PCLS SUBS LOCS RMOB RSMD JVSD STFG TRANS RELC RULE 7 0.286 0 0.000 0 0.000 2 0.500 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 7 0.000 0 0.000 0 0.000 2 0.500 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

STRM 0 0.000 0 0.000 0 0 REVC 1 0.000 0 0.000 0 0 STAP 0 0.000 0 0.000 0 0 RELS 0 0.000 0 0.000 0 0 RELD 0 0.000 0 0.000 0 0 IFSD 0 0.000 0 0.000 0 0 XDBC 1 0.000 1 0.000 0 0 USAG 0 0.000 0 0.000 0 0 MVOBTBL 1 0.000 1 0.000 0 0 JSQI 0 0.000 0 0.000 0 0 CDC 0 0.000 0 0.000 0 0 MVOBIND 1 0.000 1 0.000 0 0 STBO 0 0.000 0 0.000 0 0 HTSO 0 0.000 0 0.000 0 0 JSGA 9805 0.999 3152085 0.942 181763

0 JSET 7 0.000 7 0.000 0 0 TABL_T 20 0.400 20 0.000 8 0 CLST_T 0 0.000 0 0.000 0 0 INDX_T 2 0.000 2 0.000 0 0 NSCPD 0 0.000 0 0.000 0 0 JSLV 4 0.750 4 0.750 0 0 MODL 0 0.000 0 0.000 0 0 CUMULATIVE 286491 0.979 9312898 0.960 365116 123 第一列就是Oracle 10.2.0.4.0 版本下所有Namespace 的个数:共60个。这个远比我们通过obj$ 查询出来的多。

三.Oracle 11g 中dba_objects中的Namespace

在Oracle 11g里面,dba_objects 视图里也添加了Namespace 的字段,从而帮助我们查询。如SQL: /* Formatted on 2011/7/21 14:33:09(QP5 v5.163.1008.3004)*/

SELECTobject_type,namespace, COUNT(*)

FROMdba_objects GROUP BYobject_type,namespace ORDER BYnamespace;我们可以通过如下语句来查看哪些表里都还有Namespace 字段:

/* Formatted on 2011/7/21 14:34:37(QP5 v5.163.1008.3004)*/

SELECT * FROMdict_columns WHERE column_name = 'NAMESPACE';TABLE_NAME COLUMN_NAME COMMENTS-----------------------------------------------ALL_CONTEXT NAMESPACE Namespace of the active context DBA_CONTEXT NAMESPACE Namespace of the context DBA_GLOBAL_CONTEXT NAMESPACE DBA_POLICY_CONTEXTS NAMESPACE Namespace of the context ALL_POLICY_CONTEXTS NAMESPACE Namespace of the context

USER_POLICY_CONTEXTS NAMESPACE Namespace of the context DBA_REGISTRY NAMESPACE USER_REGISTRY NAMESPACE DBA_REGISTRY_HIERARCHY NAMESPACE DBA_REGISTRY_LOG NAMESPACE DBA_REGISTRY_HISTORY NAMESPACE DBA_HIST_LIBRARYCACHE NAMESPACE V$LIBRARYCACHE NAMESPACE V$DB_OBJECT_CACHE NAMESPACE GV$LIBRARYCACHE NAMESPACE GV$DB_OBJECT_CACHE NAMESPACE V$CONTEXT NAMESPACE GV$CONTEXT NAMESPACE V$GLOBALCONTEXT NAMESPACE GV$GLOBALCONTEXT NAMESPACE

rows selected.--这个是oracle10g的一个查询结果,在Oracle 11g里面,查询结果有35个。

第三篇:资源上传命名规范

资源上传命名规范

【导语】

为了提高资源可读性,让您更加方便查阅资料,网站制定了《第二教育网资源命名规范》文档,所有上传的资料必须符合文档中要求。具体如下:

【高中上传资源命名规范】

一.标题命名规则:

1、备课资源命名规则:(教案,学案,课件,单元测试)

年级+科目+空格(半角)+资源标题+类别+空格+版本+必选修

例:

高中语文 第六单元《短歌行》教案 新人教版必修2 高中英语 Unit4 Warming Up and Reading课件 新人教版必修1

2、对于试题命名规则:省份+市+学校+年份+年级+科目+类别+版本

例:

江苏省淮州中学09-10学年高二地理下学期期末考试新人教版

无答案(缺答案改成无答案),扫描版,PDF版,图片版 例:

江苏省淮州中学09-10学年高二地理下学期期末考试(扫描版)新人教版

江苏省淮州中学09-10学年高二地理下学期期末考试(图片版)新人教版

江苏省淮州中学09-10学年高二地理下学期期末考试(PDF版)新人教版

江苏省淮州中学09-10学年高二地理下学期期末考试(无答案)新人教版

3、对于套题命名规则:必须格式相同(包括符号和空格)

例:

2011年高考语文系统集成一轮复习方案 第一编语言知识及运用 新人教版 2011年高考语文系统集成一轮复习方案 第二编文言文阅读 新人教版

2011年高考语文系统集成一轮复习方案 第三编文学常识、名著阅读和名句名篇 新人教版 2011年高考语文系统集成一轮复习方案 第四编古代诗歌鉴赏 新人教版 2011年高考语文系统集成一轮复习方案 第五编现代文阅读 新人教版

二.特殊命名规则:

注意:标题里除书名号和特别标题符号需要除外,其它符号(如:冒号,中间横线,间隔号,一律用空格代替。对于特殊格式文件名命名规则:

年级+科目+空格(半角)+资源标题+类别+空格+(特殊文件格式)+空格+版本+必选修

例:

高中英语 unit 4 Listening素材(mp3)新人教版必修4 高中英语 unit 4 Listening视频课件(avi)新人教版必修4 注:凡是swf 格式的文件,统一用命名:(flash)

对于网站上的视频素材,统一命名年级+科目+标题+视频+ 类别+视频格式+版本+必选修 例:高中政治 经济全球化视频素材(avi)新人教版必修1 三.命名专业性

1,高一,高二,高三和必选修,不能并形存在

例:该试题原文件名是:高一语文 第六单元《短歌行》教案 新人教版必修2 则命名规则:高中语文

第六单元《短歌行》教案 新人教版必修2 实现:文件名为高中,上传后台传到相对应所属的,高一年级里

2,综合网站各科分类,正确判断资源版本和必选修的准确性

3,根据资源标题及内容,正确判断资源所属科目的准确性 4, 根据原件名称去修改文件名,不能随意改动文件名的标题

【初中、小学上传资源命名规范】

一.标题命名规则:

初中:所有“新版”资源需要再标题上标注为(新版)+版本

小学:所有“新版”资源需要再标题上标注为(新版)+版本

1、备课资源的命名规则如下(注:备课包括课件 教案 学案 素材)

1)年级+科目+上下册+空格(半角)+资源标题+类别+空格+版本

例:三年级语文上册 第10课《写给云》课件 西师大版

二年级数学上册 课间活动教案 北师大版 七年级数学上册 1.4绝对值教案 浙教版

七年级语文下册 第一单元导学案 人教新课标版

八年级物理上册 4.4 光的折射教学课件(新版)新人教版

2)省份+年份+年级+科目+上下册+资源标题+类别+版本

例:江苏省灌南县2012年秋七年级语文上册《伟人细胞》教案 苏教版

3)省份+年份+年级+科目+上下册+资源标题+主题+类别+版本

例:湖北省钟祥市石牌镇七年级数学上册《整式的加减》复习课件 新人教版

安徽省亳州市风华中学七年级语文上册《第4课 金色花》课件3(新版)新人教版

2、试题资源的命名规则如下(注:试题包括期中 期末 月考 练习单元测试 复习等)

1)省份+年份+年级+科目+上下学期(第一学期)+类别+版本

例:浙江省湖州市吴兴区2013年一年级语文上学期期末考试试卷

江苏省太仓市2012-2013学年七年级英语第一学期期末考试试题 人教新目标版 吉林省镇赉县镇2013届九年级语文第四次月考试题(扫描版)新人教版 山东省青州市2013年三年级语文下学期期末质量检测试题(无答案)

吉林省镇赉县镇2013-2014九年级语文第四次月考试题(新版)新人教版 注:年份之间的横线一定要是这个状态的“-”

上学期(下学期)与第一学期(第二学期)不可以并存。

“期中考试试题”不可以并存,应该为“期中试题”

“缺答案”要改为“无答案”

扫描版的试题标题要为“扫描版,无答案” 而不应该是“无答案,扫描版”。

2)初中例如有单元、章节、知识点的要改为上册而不是上学期。下册与下学期同理。

例:广东省江门市七年级生物上学期第三单元综合检测题(无答案)正确应为:广东省江门市七年级生物上册 第三单元综合检测题(无答案)

3、中考套题的命名规则如下(注:必须格式相同 包括符号和空格 中考与九年级不可以并存)

1)年份+年级+科目(+复习或总复习)+资源标题+类别+版本

例:

【南方新中考】2013年中考生物复习人的生活需要空气课件 新人教版

【南方新中考】2013年中考生物复习生物的生殖和发育课件 新人教版

【南方新中考】2013年中考生物复习被子植物的一生课件 新人教版

【南方新中考】2013年中考生物复习专题四 突破中考社会热点题型课件 新人教版

【备考2014 志鸿优化设计】2013版中考化学总复习基础讲练 第五单元 化学方程式 新人教版(中学教材全解)2013-2014学年九年级化学全册 第8章 食品中的有机化合物综合检测题 沪教版

注:“【】”此符号的使用规则为,必须是参考用书或者是教材类的资源,其余的比较突出的重点需使用“()”

来显示。

2)省份+年份+年级+科目(+复习或总复习)+主题+资源标题+版本

例:

广东省2013年中考政治复习专题检测试题 过富有情趣的生活

广东省2013年中考政治复习专题检测试题 交往艺术新思维

广东省2013年中考政治复习专题检测试题 满怀希望迎接明天

广东省2013年中考政治复习专题检测试题 我们的文化

特例:

2012年中考政治一轮复习八上 7.1礼貌待人精品课件 新人教版

2012年中考政治一轮复习七上 1笑迎生活认识自我精品课件 新人教版

2012年中考政治一轮复习九年级 16关注经济发展精品课件 新人教版 3)小升初的命名规则

例:2014小升初语文知识点专项复习专题一 基础知识 a o e 教案

湖北省小升初英语 阅读理解基础训练10 北京市小升初语文模拟测试题

(四)4、特殊格式文件名命名规则如下

1)年级+科目+上下册+空格(半角)+资源标题+类别+(特殊文件格式)+空格+版本

例:五年级英语上册 lesson1课文朗读素材(MP3)新路径(一起)

九年级化学上册 co2制作及性质素材(flash)新人教版

七年级语文上册《15 钱塘湖春行》视频素材(f4v)(新版)新人教版

2)省份+年级+科目+上下册+空格(半角)+资源标题+类别+(特殊文件格式)+空格+版本

例:重庆市綦江区三江中学八年级语文上册 了解莲视频素材(mpg)

注:

1、凡是swf 格式的文件,统一用命名(flash)其它类型可以根据其文件的属性来定。

2、标题里除书名号和特别标题符号需要除外,其它符号(如:冒号,中间横线,间隔号,用空格代替,也有特例,需要自己判断,下面是例子。

特例:

3、标题里外不符,要以里面的为准进行命题,同时如果标题上没有知识点而里面有知识点的,要将其复制到标题上。

5、打包文件名命名规则如下

1)省份+年份+年级+科目+上下册+资源标题+类别+(打包套)+版本

例:湖南省岳阳市七年级英语上册 Unit 6 Do you like bananas教案(打包5套)人教新目标版

宁夏外国语学校小升初英语专项训练 完形填空(打包50套)

2)省份+年份+年级+科目+上下册+资源标题+类别(注:多种)+(打包套)+版本

例:八年级地理上册 《第一章 第四节 中国的民族》课件+学案+同步练习(打包3套)湘教版

注:多种类别的打包要将知识点加上书名号

二.命名专业性

1、综合网站各科分类,正确判断资源版本和上下册的准确性

2、根据资源标题及内容,正确判断资源所属科目的准确性

3、根据原件名称去修改文件名,不能随意改动文件名的标题

4、以上文件根据实际情况进行随时添加修改。

第四篇:Java命名规范

Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。例如: net.frontfree.javagroup

类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。

例如: Circle

interface RasterDelegate;

interface Storing;

方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。例如: sendMessge

变量(Variables)除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。

变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。char c;

int i;

float myWidth;

实例变量(Instance Variables)大小写规则和变量名相似,除了前面需要一个下划线 int _employeeId;

String _name;

Customer _customer;

常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。

例如: MAX_VALUE

第五篇:oracle上机实验报告格式规范

Oracle上机实验报告

学生姓名:学号:班级:实验日期:

实验名称:

实验目的:

实验内容:

实验步骤及分析:(此部分为关键内容:要求整理实验主要步骤,总结编写实验过程中遇到哪些问题,如何解决的,若未解决也应总结,回答思考题的答案)

相关内容

热门阅读

最新更新

随机推荐