一、概念:

1.数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。

数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。我们不能手工修改数据字典里的信息。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。

2.数据字典中的信息包含:

1.数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)

2.数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间

3.列的默认值

4.完整性约束(integrity constraint)信息

5.数据库用户名

6.每个用户被授予(grant)的权限(privilege)与角色(role)

7.监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作

8.数据库中的其他概要信息

二、组成结构

1.基表(base table):用于存储相关的数据库信息。只有 Oracle 才能读写这些表。用户很少直接访问她们,因为这些表是规范化的(normalized),且其中的大部分数据的含义是普通用户无法理解的。

2.用户访问视图 (user-accessible view) :用于对数据字典基表内存储的数据进行汇总与展示。这些视图利用连接(join)及 WHERE 子句简化基表中的数据,将其解码(decode)为用户可理解的信息,例如用户名,表名等。大多数数据库用户只能访问这些视图,而不能访问基表。

Oracle 中的 SYS 用户拥有数据字典中的所有基表(base table)及用户访问视图(user-accessible view)。其他 Oracle 用户不应修改(UPDATE,DELETE,或 INSERT)SYS 方案中的对象定义及数据,否则将危害数据库的数据完整性(data integrity)。安全管理员必须严格控制此账户。

三、使用数据字典

数据字典有三个主要用途:

1、Oracle 利用数据字典来获取关于用户,方案对象,及存储结构(storage structure)的信息。

2、每当数据库中执行了 DDL 语句后,Oracle 将对数据字典进行修改。

3、所有 Oracle 用户都可以使用数据字典来获取关于数据库的信息。

1.Oracle 如何使用数据字典

1.1)在数据库运行期间,Oracle 通过数据字典内的信息来确定方案对象(schema object)是否存在,以及用户是否具备相应的权限。Oracle 会持续地更新数据字典,以便反映数据库在结构,数据,授权,监控(audit)等方面的变化。

1.2)Oracle 为许多数据字典视图创建了公共同义词(public synonym),以便用户能够方便地对其进行访问。安全管理员也可以为需要在全系统使用的方案对象(schema object)创建公共同义词。用户应防止自身的方案对象名与公共同义词名重复。

1.3)由于 Oracle 在数据库运行中需要不断地访问数据字典来验证用户权限及方案对象状态,大量的数据字典信息将被缓存到 SGA 的数据字典缓存(dictionary cache)内。这些数据将依据最近最少使用(least recently used,LRU)算法存储在内存中。

2.用户如何使用数据字典

Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。

1. 静态数据字典

这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。

user_*

该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)

  

all_*

该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)

  

dba_*  

该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

  

从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。

  

下面以user_为例介绍几个常用的静态视图:

user_users视图

  主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。例如执行下列命令即可返回这些信息。

  select * from user_users

  

  user_tables视图

  主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。执行命令为:select * from user_tables

  

  user_objects视图

  主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。例如, 需要获取一个名为“package1”的对象类型和其状态的信息,可以执行下面命令:

  select object_type,status

  from user_objects

  where object_name=upper(‘package1’);

  这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大小写敏感的,所以在实际操作中一定要注意大小写匹配。

  

  user_tab_privs视图

  该视图主要是存储当前用户下对所有表的权限信息。比如,为了了解当前用户对table1的权限信息,可以执行如下命令:

  select * from user_tab_privs where table_name=upper('connector')

  了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。

  

前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。

2. 动态数据字典

  Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。

  Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。

  

  v$access

  该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。

  运行如下命令:

  select * from v$access

  

  v$session

  该视图列出当前会话的详细信息。由于该视图字段较多,这里就不列详细字段,为了解详细信息,可以直接在sql*plus命令行下键入:desc v$session即可。

  

  v$active_instance

  该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。

  

  v$context

  该视图列出当前会话的属性信息。比如命名空间、属性值等。

3.任何查找所需要的数据字典及各个字段的含义

dictionary    全部数据字典表的名称和解释,它有一个同义词dict

dict_columns   全部数据字典表里字段名称和解释

如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:

SQL>select * from dictionary where instr(comments,'index')>0;

如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:

SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';

依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。

四、下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。

1、用户

查看当前用户的缺省表空间

SQL>select username,default_tablespace from user_users;

查看当前用户的角色

SQL>select * from user_role_privs;

查看当前用户的系统权限和表级权限

SQL>select * from user_sys_privs;

SQL>select * from user_tab_privs;

2、表

查看用户下所有的表

SQL>select * from user_tables;

查看名称包含log字符的表

SQL>select object_name,object_id from user_objects

where instr(object_name,'LOG')>0;

查看某表的创建时间

SQL>select object_name,created from user_objects where object_name=upper('CONNECTOR');

查看某表的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

where segment_name=upper('CONNECTOR');

查看放在ORACLE的内存区里的表

SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;

3、索引

查看索引个数和类别

SQL>select index_name,index_type,table_name from user_indexes order by table_name;

查看索引被索引的字段

SQL>select * from user_ind_columns where index_name=upper('IDX_COLLAGE_INFOR_COMMENT_ID');

查看索引的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

where segment_name=upper('&index_name');

4、序列号

查看序列号,last_number是当前值

SQL>select * from user_sequences;

5、视图

查看视图的名称

SQL>select view_name from user_views;

查看创建视图的select语句

SQL>select view_name,text_length from user_views;

SQL>select text from user_views where view_name=upper('&view_name');

6、同义词

查看同义词的名称

SQL>select * from user_synonyms;

7、约束条件

查看某表的约束条件

SQL>select constraint_name, constraint_type,search_condition, r_constraint_name

from user_constraints where table_name = upper('&table_name');

SQL>select c.constraint_name,c.constraint_type,cc.column_name

from user_constraints c,user_cons_columns cc

where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')

and c.owner = cc.owner and c.constraint_name = cc.constraint_name

order by cc.position;

8、存储函数和过程

查看函数和过程的状态

SQL>select object_name,status from user_objects where object_type='FUNCTION';

SQL>select object_name,status from user_objects where object_type='PROCEDURE';

查看函数和过程的源代码

SQL>select text from all_source where owner=user and name=upper('&plsql_name');

9、触发器

查看触发器

select

'create or replace trigger "' ||

trigger_name || '"' || chr(10)||

decode( substr( trigger_type, 1, 1 ),

'A', 'AFTER', 'B', 'BEFORE', 'I', 'INSTEAD OF' ) ||

chr(10) ||

triggering_event || chr(10) ||

'ON "' || table_owner || '"."' ||

table_name || '"' || chr(10) ||

decode( instr( trigger_type, 'EACH ROW' ), 0, null,

'FOR EACH ROW' ) || chr(10) ,

trigger_body

from user_triggers;

------------------------------------------------------------------------------------------------------------------------

1.概念
数据字典是oracle数据库用来存贮数据库结构信息的地方。
数据字典是用来描述数据库数据的组织方式的,由表和视图组成。
数据字典由脚本$oracle_home/rdbms/admin/catalog.sql创建。
2.分类
视图有三种实例:user_*(当前用户所拥有对象的有关信息),all_*(当前用户可访问对象的信息),dba_*(数据库中所有对象的信息)。
查询数据字典数据时使用大写字母。可用upper\lower函数转换。
一下以user_*实例举例(如没有user_*,则依次以all_*、dba_*举例)。
3.类别
3.1 关系群集、表、视图
 群集      user_clusters                                           群集          
               user_cluster_hash_expressions         群集使用的群集散列函数
               user_clu_columns                                   表列到群集列的映射(无all_*)
 表和视图  user_tables                                           关系表
                   user_all_tables                                    表(user_all_tables是user_tables与user_object_tables的集合)
                   user_tab_columns                              表列
                  user_tab_comments                           表的注释
                  user_col_comments                          表和视图的列的注释
                  user_refs                                              对象类型列的属性和REF列
                  user_partial_drop_tabs                    被部分放弃的表             
                 user_unused_col_tabs                     带有未使用列的表
                 user_updatable_columns                 联合视图中更新的列
                user_views                                            视图 
3.2 集合、LOB、对象类型和对象表
    集合      user_coll_types                      集合类型
                  user_varrays                           varray数组类型
                  user_nested_tables              嵌套表
    大型对象  user_lobs                       LOB
    对象表类型user_types                      对象类型
                        user_type_attrs                 对象类型的属性
                        user_type_methods               对象类型的方法
                        user_object_tables              对象表            
3.3 oracle视图
 设备环境  all_conext(all_context)         设备环境
 维数           user_dimensions                 维数
           user_dim_hierarchies            维数分层 
           user_dim_levels                 维数的级别
           user_dim_level_key              维数级别的列 
           user_dim_attributes             维数的相关列和维数级之间的关系
           user_dim_child_of               维数级别之间的关系
           user_dim_join_key               维数间的联合
 操作符    user_operators                  操作符的基本信息
           user_opancillary                操作符的辅助信息
           user_oparguments                操作符的参数
           user_opbindings                 操作符的绑定功能          
 摘要      user_outlines                   摘要
           user_outline_hints              摘要的提示
 策略      user_policies                   表和视图的策略 
3.4 其他数据库对象
 数据库任务 user_jobs                      数据库任务
 数据库连接 user_db_links                  数据库连接
 目录       all_directories                目录
 库         user_libraries                 库(字典)
 序列       user_sequences                 序列
 替代名     user_synonyms                  替代名(同义词)
3.5 分区和子分区
 user_part_tables                          已分区表
    user_tab_partitions                       表的分区
    user_tab_subpartitions                    表的子分区       
 user_part_indexes                         已分区索引
 user_ind_partitions                       索引分区
 user_ind_subpartitions                    索引子分区
 user_part_lobs                            表中的LOB数据分区
 user_lob_partitions                       LOB分区
    user_lob_subpartitions                    LOB子分区
 user_part_key_columns                     已分区对象的分区关键字列
 user_subpart_key_columns                  使用组合范围/散列法分区的表的子分区关键字列 
 user_part_col_statistics                  表分区统计和其他信息
 user_subpart_col_statistics               表子分区的列统计
 user_part_histograms                      表的分区的直方图
 user_subpart_histograms                   表的子分区的直方图
3.6 索引
 user_indexes                               索引
    user_ind_columns                           索引列
    user_ind_expressions                       索引的函数索引表达式
    user_indextypes                            索引类型
    user_indextype_operators                   索引类型支持的操作符
3.7 实现视图、摘要、快照
 实现视图  user_mviews                      物化视图
           user_mview_logs                  物化视图日志
           user_mview_comments              物化视图注释
      user_mview_refresh_times         物化视图刷新时间
      user_mview_analysis              物化视图的附加信息                      
      user_mview_detail_relations      物化视图FROM列表的详细关系          
           user_mview_keys                  物化视图列(或者 GROUP BY子句中的列)
           user_mview_joins                 物化视图WHERE子句中各列间的联合
     user_mview_aggregates            物化视图选择列表中的成组功能     
    快照      user_refresh                     快照刷新组
              user_refresh_children            快照刷新组的对象
              user_snapshots                   快照
              user_snapshot_logs               快照日志             
              user_snapshot_refresh_time       快照的刷新次数
              user_registered_snapshots        已注册快照
              all_refresh_dependencies         快照的从属或容器表 (只要all一种)            
    摘要      user_summaries                   摘要
              user_summary_detail_tables       摘要FROM列表的详细关系
              user_summary_keys                摘要列(或者 GROUP BY子句中的列)
              user_summary_joins               摘要WHERE子句中各列间的联合
              user_summary_aggregates          摘要选择列表中的成组功能            
3.8 子程序、方法、触发器
    子程序    user_procedures                  子程序名(包括过程、函数、包)
              user_arguments                   子程序参数(包括过程、函数、包)
    方法      user_method_params               对象类型方法的参数
           user_method_results              对象类型方法的返回值
    触发器    user_triggers                    触发器
        user_trigger_cols                触发器的列          
3.9 源代码和编译错误
    源代码    user_source        包,包体,函数,过程,对象类型,对象类型体的源代码
    编译错误  user_errors        视图和包,包体,函数,过程的编译错误
3.10 相关和限制
 相关     user_dependencies                对象之间的相关(引用)
 限制     user_constraints                 表的限制(约束)
          user_cons_columns                约束的列
          user_cons_obj_columns         
3.11 统计和审计
    统计     user_ustats                     对象的统计
             user_tab_col_statistics         表列的统计
             user_tab_histograms             表和视图的直方图
             user_associations               数据库对象的用户自定义统计
    审计     all_def_audit_opts              对象的默认审计选项
             audit_actions                   审计跟踪类型码的说明   
3.12 权限和授权
    系统权限   user_sys_privs                用户系统权限
    表权限     user_tab_privs                授予作为拥有者、授权者、权限受让者对象的权限
               user_tab_privs_made           授予当前用户对象的权限
               all_tab_privs_recd            授予作为权限受让者的用户对象的权限
    列权限     user_col_privs                授予作为拥有者、授权者、或受让者的用户的可授访问表或视图列的权限
               user_col_privs_made           授予当前用户表或视图列的权限
               user_col_privs_recd           授予作为权限受让者用户表或视图列权限
   
4.属性
    表(视图)的属性(列)信息查看sql如下(以视图user_coll_types举例):
 select lower(column_name) column_name,nullable,decode(data_type,'VARCHAR2',data_type||'('||char_length||')',data_type) data_type
 from dba_tab_columns
 where lower(table_name)='user_coll_types' order by column_id;
 --》调整类型
 select lower(column_name) column_name,nullable,data_type||'('||data_length||')' data_type
 from dba_tab_columns
 where lower(table_name)='user_coll_types' order by column_id;  
4.1 集合、LOB、对象类型和对象表
 1.集合
  user_coll_types                 集合类型
     user_varrays                    varray数组类型
     user_nested_tables              嵌套表
   user_coll_types
     列       是否为空      类型                    说明
  type_name N VARCHAR2(30)                   集合名称
  coll_type N VARCHAR2(30)                   集合类型,可以是表或可变数组
  upper_bound Y NUMBER                         数组类型元素的最大上限
  elem_type_mod Y VARCHAR2(7)                元素类型修改符(如REF)
  elem_type_owner Y VARCHAR2(30)               元素类型的拥有者(只在与集合自身的拥有者不同时有效)
  elem_type_name Y VARCHAR2(30)               元素类型的名称
  length Y NUMBER                             如果元素类型是CHAR或VARCHAR2,则为其长度
  precision Y NUMBER                         如果元素是NUMBER类型,则为精度
  scale Y NUMBER                             如果元素是NUMBER类型,则为比例
  character_set_name Y VARCHAR2(44)           在说明了CHARCS或NCHARCS时为字符集名称。
  elem_storage Y VARCHAR2(7)                Oracle8i中使用的若干varray元素的存储字符。
  nulls_stored Y VARCHAR2(3)                Oracle8i中在存储了varray元素空信息时使用。
     user_varrays  
     列       是否为空      类型                    说明    
  parent_table_name Y VARCHAR2(30)           包括表的名称
  parent_table_column Y VARCHAR2(4000)         带有集合的包括表的拥有者
  type_owner Y VARCHAR2(30)                   集合类型的拥有者
  type_name Y VARCHAR2(30)                   集合类型的名称
  lob_name Y VARCHAR2(30)                   如果在LOB中有集合的话,则为该LOB的名称
  storage_spec Y VARCHAR2(30)               为DEFAULT或USER SPECIFIED。
  return_type Y VARCHAR2(20)                   列的返回类型
  element_substitutable Y VARCHAR2(25)
   user_nested_tables
     列       是否为空      类型                    说明  
  table_name Y VARCHAR2(30)                   如果在LOB中有集合的话,则为该LOB的名称
  table_type_owner Y VARCHAR2(30)           集合类型的拥有者
  table_type_name Y VARCHAR2(30)               集合类型的名称
  parent_table_name Y VARCHAR2(30)           包括表的名称
  parent_table_column Y VARCHAR2(4000)         带有集合的包括表的拥有者
  storage_spec Y VARCHAR2(30)               为DEFAULT或USER SPECIFIED。
  return_type Y VARCHAR2(20)                   列的返回类型
  element_substitutable Y VARCHAR2(25)
    2.大型对象 
      user_lobs                       LOB
     列       是否为空      类型                    说明     
  table_name Y VARCHAR2(30)                   包括LOB的表的名称
  column_name Y VARCHAR2(4000)                 LOB列或属性的名称
  segment_name Y VARCHAR2(30)               LOB段的名称
  tablespace_name Y VARCHAR2(30)               LOB所在表空间
  index_name Y VARCHAR2(30)                   LOB索引的名称
  chunk Y NUMBER                             以字节为分配或操作单位的LOB块长度。
  pctversion Y NUMBER                         用于存储版本信息的LOB的最大百分比。
  retention Y NUMBER
  freepools Y NUMBER
  cache Y VARCHAR2(10)                       如果LOB可使用缓冲区为YES,否则为NO。
  logging Y VARCHAR2(7)                        如果记录了LOB的变更则为YES,否则为NO。
  in_row Y VARCHAR2(3)                        如果LOB使用基行存储的话为YES,否则为NO。  
  format Y VARCHAR2(15)
  partitioned Y VARCHAR2(3)
    3.对象表类型
     user_types                      对象类型
  user_type_attrs                 对象类型的属性
  user_type_methods               对象类型的方法
  user_object_tables              对象表
      user_types                     
  type_name N VARCHAR2(30)                   对象类型的名称
  type_oid N RAW(16)                        类型的对象标识符(OID)
  typecode Y VARCHAR2(30)                   类型OBJECT,TABLE,VARCHAR2,NUMBER等的类型码
  attributes Y NUMBER(22)                     类型属性个数
  methods Y NUMBER(22)                         类型方法的个数
  predefined Y VARCHAR2(3)                    如果类型是预定义的则为YES,如果是用户定义的则为NO。
  incomplete Y VARCHAR2(3)                    如果类型不完整则为YES,否则为NO。 
  final Y VARCHAR2(3)
  instantiable Y VARCHAR2(3)
  supertype_owner Y VARCHAR2(30)
  supertype_name Y VARCHAR2(30)
  local_attributes Y NUMBER(22)
  local_methods Y NUMBER(22)
  typeid Y RAW(16)    
   user_type_attrs   
  type_name N VARCHAR2(30)            对象类型的名称
  attr_name N VARCHAR2(30)            属性的名称
  attr_type_mod Y VARCHAR2(7)         属性的类型修改符(如REF)
  attr_type_owner Y VARCHAR2(30)        如果是用户定义的类型,则为属性类型的拥有者
  attr_type_name Y VARCHAR2(30)        如果是用户定义的类型,则为属性类型的名称
  length Y NUMBER                      CHAR或VARCHAR2属性的长度。
  precision Y NUMBER                  NUMBER属性的精度。
  scale Y NUMBER                      NUMBER属性的比例
  character_set_name Y VARCHAR2(44)    说明的属性字符集
  attr_no N NUMBER                      在起始语句CREATE TYPE中说明的属性位置。 
  inherited Y VARCHAR2(3)               
   user_type_methods             
  type_name N VARCHAR2(30)            对象类型的名称
  method_name N VARCHAR2(30)            方法的名称
  method_no N NUMBER(22)              用于区别重载方法的方法号
  method_type Y VARCHAR2(6)             方法类型,可以是M A P、O R D E R、P U B L I C之一。
  parameters N NUMBER(22)              方法的参数个数
  results N NUMBER(22)                  方法返回结果个数
  final Y VARCHAR2(3)
  instantiable Y VARCHAR2(3)
  overriding Y VARCHAR2(3)
  inherited Y VARCHAR2(3)  
   user_object_tables            
  table_name N VARCHAR2(30)
  tablespace_name Y VARCHAR2(30)
  cluster_name Y VARCHAR2(30)
  iot_name Y VARCHAR2(30)
  status Y VARCHAR2(8)
  pct_free Y NUMBER(22)
  pct_used Y NUMBER(22)
  ini_trans Y NUMBER(22)
  max_trans Y NUMBER(22)
  initial_extent Y NUMBER(22)
  next_extent Y NUMBER(22)
  min_extents Y NUMBER(22)
  max_extents Y NUMBER(22)
  pct_increase Y NUMBER(22)
  freelists Y NUMBER(22)
  freelist_groups Y NUMBER(22)
  logging Y VARCHAR2(3)
  backed_up Y VARCHAR2(1)
  num_rows Y NUMBER(22)
  blocks Y NUMBER(22)
  empty_blocks Y NUMBER(22)
  avg_space Y NUMBER(22)
  chain_cnt Y NUMBER(22)
  avg_row_len Y NUMBER(22)
  avg_space_freelist_blocks Y NUMBER(22)
  num_freelist_blocks Y NUMBER(22)
  degree Y VARCHAR2(10)
  instances Y VARCHAR2(10)
  cache Y VARCHAR2(5)
  table_lock Y VARCHAR2(8)
  sample_size Y NUMBER(22)
  last_analyzed Y DATE(7)
  partitioned Y VARCHAR2(3)
  iot_type Y VARCHAR2(12)
  object_id_type Y VARCHAR2(16)
  table_type_owner Y VARCHAR2(30)
  table_type Y VARCHAR2(30)
  temporary Y VARCHAR2(1)
  secondary Y VARCHAR2(1)
  nested Y VARCHAR2(3)
  buffer_pool Y VARCHAR2(7)
  row_movement Y VARCHAR2(8)
  global_stats Y VARCHAR2(3)
  user_stats Y VARCHAR2(3)
  duration Y VARCHAR2(15)
  skip_corrupt Y VARCHAR2(8)
  monitoring Y VARCHAR2(3)
  cluster_owner Y VARCHAR2(30)
  dependencies Y VARCHAR2(8)
  compression Y VARCHAR2(8)
  dropped Y VARCHAR2(3)  
4.2 其他数据库对象
 1.数据库任务
   user_jobs   
  job N NUMBER                         任务ID号。只要该任务存在,该ID就保持不变
  log_user N VARCHAR2(30)           提交任务的用户
  priv_user N VARCHAR2(30)           默认权限适用于该任务的用户
  schema_user N VARCHAR2(30)           任务的默认模式
  last_date Y DATE                   任务上一次执行成功的日期
  last_sec Y VARCHAR2(8)            意义与last_date相同,为HH24:MI:SS格式(只有时间格式)
  this_date Y DATE                   任务开始执行的日期。如果任务没有开始则为空。
  this_sec Y VARCHAR2(8)            任务开始执行的时间,只有时间格式HH24:MI:SS
  next_date N DATE                   当任务将在下一次执行时的日期
  next_sec Y VARCHAR2(8)            当任务将在下一次执行时的时间,只有时间格式HH24:MI:SS
  total_time Y NUMBER                 系统在任务上的总时间开销(以秒为单位)
  broken Y VARCHAR2(1)                如果任务中断则为Y,否则为N。
  interval N VARCHAR2(200)          时间间隔:用来计算next_date值的日期函数。
  failures Y NUMBER                 自从成功执行上一个任务后的失败次数
  what Y VARCHAR2(4000)             构成匿名PL/SQL块的包体。限长4000字节
  nls_env Y VARCHAR2(4000)             任务的NLS环境(由ALTER SESSION说明)    
  misc_env Y RAW                    任务其他会话的参数
  instance Y NUMBER             在Oracle8i下运行该任务的OPS环境的实例(数据库实例)
   dba_jobs_running
  sid Y NUMBER                          正在运行任务的进程的进程标识符
  job Y NUMBER                          任务号
  failures Y NUMBER                  自从上次成功运行后任务执行失败的次数
  last_date Y DATE                    该任务成功运行的最后日期
  last_sec Y VARCHAR2(8)             与last_date相同,但以字符格式返回,只有时间格式HH24:MI:SS
  this_date Y DATE                    按计划下次运行任务的日期
  this_sec Y VARCHAR2(8)             与this_date相同,但以字符格式返回,只有时间格式HH24:MI:SS
  instance Y NUMBER                 在Oracle8i下运行该任务的OPS环境的实例(数据库实例)
 2.数据库连接 user_db_links  
  db_link N VARCHAR2(128)               数据库连接名
  username Y VARCHAR2(30)            将使用连接的用户名
  password Y VARCHAR2(30)            将使用连接的用户密码
  host Y VARCHAR2(2000)              用于连接的Net8字符串:主机地址
  created N DATE                     数据库连接创建的日期
 3.目录       all_directories               
  owner N VARCHAR2(30)                 所有者
  directory_name N VARCHAR2(30)         目录名
  directory_path Y VARCHAR2(4000)      目录所在的文件系统的操作系统路径
 4.库(字典)         user_libraries               
  library_name N VARCHAR2(30)         库名
  file_spec Y VARCHAR2(2000)           库所在文件目录的操作系统路径及库文件(如:dll)
  dynamic Y VARCHAR2(1)                  如果该库是动态的(.dll),则为Y,否则为N
  status Y VARCHAR2(7)                  库状态—VALID或INVALID
 5.序列       user_sequences   
  sequence_name N VARCHAR2(30)         序列名
  min_value Y NUMBER                   序列的起始值
  max_value Y NUMBER                   序列的终止值
  increment_by N NUMBER               步长:为每个NEXTVAL增加的序列数的取值
  cycle_flag Y VARCHAR2(1)              如果在极限达到时回转则为Y,否则为N
  order_flag Y VARCHAR2(1)              如果按顺序生成序列数则为Y,否则为N
  cache_size N NUMBER                   缓冲序列数的个数
  last_number N NUMBER                  写入磁盘的最后序列数。该数可能与CURRVAL不同
 6.替代名(同义词)     user_synonyms    
  synonym_name N VARCHAR2(30)         替代名的名称
  table_owner Y VARCHAR2(30)             由synonym引用对象的拥有者
  table_name N VARCHAR2(30)             由synonym引用对象的名称
  db_link Y VARCHAR2(128)              由远程synonym引用的数据库连接 
4.3 子程序、方法、触发器
    1.子程序    user_procedures                  子程序名(包括过程、函数、包)
                user_arguments                   子程序参数(包括过程、函数、包)
   user_procedures 
  object_name N VARCHAR2(30)             子程序的名称
  procedure_name Y VARCHAR2(30)         包下子程序的名称
  aggregate Y VARCHAR2(3)                聚集;集合
  pipelined Y VARCHAR2(3)                管道;传递途径
  impltypeowner Y VARCHAR2(30)
  impltypename Y VARCHAR2(30)
  parallel Y VARCHAR2(3)                并行
  interface Y VARCHAR2(3)                接口
  deterministic Y VARCHAR2(3)
  authid Y VARCHAR2(12)              
      user_arguments
  object_name Y VARCHAR2(30)             子程序的名称
  package_name Y VARCHAR2(30)         包名:如果子程序在包中的话,则为该包的名称
  object_id N NUMBER                   对象号:对子程序进行的编号
  overload Y VARCHAR2(40)             重载子程序的唯一标识符
  argument_name Y VARCHAR2(30)         参数名
  position N NUMBER                   参数在表中的位置,或在函数返回值为空
  sequence N NUMBER                   包括在嵌套层中的参数序列
  data_level N NUMBER                   复合类型(表或记录)参数的层次
  data_type Y VARCHAR2(30)             参数的数据类型
  default_value Y LONG                 说明的默认值
  default_length Y NUMBER               默认参数的长度
  in_out Y VARCHAR2(9)                  参数模式为IN,OUT,IN OUT之一
  data_length Y NUMBER                   按字节计算的参数长度
  data_precision Y NUMBER               参数精度
  data_scale Y NUMBER                   参数比例
  radix Y NUMBER                       参数的表示基数
  character_set_name Y VARCHAR2(44)     说明的参数字符集
  type_owner Y VARCHAR2(30)             用户定义参数类型的拥有者
  type_name Y VARCHAR2(30)             用户定义参数类型的名称
  type_subname Y VARCHAR2(30)         用户定义附属类型的名
  type_link Y VARCHAR2(128)            远程用户定义类型时的数据库连接名称
  pls_type Y VARCHAR2(30)
  char_length Y NUMBER
  char_used Y VARCHAR2(1)                  
    2.方法      user_method_params               对象类型方法的参数
             user_method_results              对象类型方法的返回值
   user_method_params
  type_name N VARCHAR2(30)             对象类型的名称
  method_name N VARCHAR2(30)             方法名
  method_no N NUMBER                   方法号(用于区别重载的方法)
  param_name N VARCHAR2(30)             参数名
  param_no N NUMBER                   参数个数或位置
  param_mode Y VARCHAR2(6)              参数模式(IN、OUT、IN OUT)
  param_type_mod Y VARCHAR2(7)          参数类型修改符(如REF)
  param_type_owner Y VARCHAR2(30)     参数类型拥有者
  param_type_name Y VARCHAR2(30)         参数类型名
  character_set_name Y VARCHAR2(44)     定义的参数字符集
    user_method_results 
  type_name N VARCHAR2(30)             对象类型名称
  method_name N VARCHAR2(30)             方法名称
  method_no N NUMBER                   方法号(用于区别重载的方法)
  result_type_mod Y VARCHAR2(7)          返回值的类型修改符(如REF)
  result_type_owner Y VARCHAR2(30)     如果是用户定义的类型,则为返回值类型的拥有者
  result_type_name Y VARCHAR2(30)     如果是用户定义的类型,则为返回值类型的名称
  character_set_name Y VARCHAR2(44)     定义的返回值字符集        
    3.触发器    user_triggers                    触发器
          user_trigger_cols                触发器的列
   user_triggers   
  trigger_name Y VARCHAR2(30)         触发器名称
  trigger_type Y VARCHAR2(16)         触发器类型,包括:BEFORE EACH ROW,AFTER EACH ROW,BEFORE STATEMENT,AFTER STATEMENT,INSTEAD OF
  triggering_event Y VARCHAR2(227)    触发事件,包括:INSERT,UPDATE,DELETE及其任意组合(如:INSERT OR UPDATE OR DELETE)
  table_owner Y VARCHAR2(30)             表的所有者
  base_object_type Y VARCHAR2(16)     基本对象类型(表的类型),包括:TABLE,VIEW
  table_name Y VARCHAR2(30)             表名(含视图名)
  column_name Y VARCHAR2(4000)           列名:用于触发器的列名称
  referencing_names Y VARCHAR2(128)    参照名:REFERENCING NEW AS NEW OLD AS OLD
  when_clause Y VARCHAR2(4000)           条件:触发动作需要满足的条件
  status Y VARCHAR2(8)                  状态:enable,disable
  description Y VARCHAR2(4000)           描述:触发器头
  action_type Y VARCHAR2(11)             动作类型:PL/SQL 
  trigger_body Y LONG              触发器体: 触发器体完全放置在Long字段中,导致触发器不能很长,可将独立功能用PROCEDURE实现,在触发器中调用即可。
   user_trigger_cols
  trigger_owner Y VARCHAR2(30)         触发器的所有者
  trigger_name Y VARCHAR2(30)         触发器名称
  table_owner Y VARCHAR2(30)             表的所有者
  table_name Y VARCHAR2(30)             表名(含视图名)
  column_name Y VARCHAR2(4000)           用于触发器的列名称
  column_list Y VARCHAR2(3)              如果在update子句中说明该列的话,则为YES,否则为NO。
  column_usage Y VARCHAR2(17)         说明列在触发器中的引用方式。它可以带有操作符NEW,OLD,IN,OUT,IN OUT 的组合。        
4.4 源代码和编译错误
    1.源代码    user_source        包,包体,函数,过程,对象类型,对象类型体的源代码
  name Y VARCHAR2(30)                  内置对象的名称
  type Y VARCHAR2(12)                  对象类型
  line Y NUMBER                        当前源代码行的行号
  text Y VARCHAR2(4000)                当前行的源文本  
    2.编译错误  user_errors        视图和包,包体,函数,过程的编译错误
  name N VARCHAR2(30)                  对象名
  type Y VARCHAR2(12)                  对象类型
  sequence N NUMBER                    错误序号(针对同一个对象的多个错误)
  line N NUMBER                        错误行号:错误所在的行号
  position N NUMBER                    错误位置号:错误所在的行中以零为基数的偏移量
  text N VARCHAR2(4000)                包括错误代码和错误信息在内的错误文本
  attribute Y VARCHAR2(9)               错误类型
  message_number Y NUMBER                错误编号:oracle对错误的解析编号
4.5 相关和限制
 1.相关     user_dependencies                对象之间的相关(引用)
   user_dependencies
  name N VARCHAR2(30)                      对象名称
  type Y VARCHAR2(17)                      对象类型,可以是PROCEDURE、FUNCTION、PACKAGE、PACKAGE BODY、TYPE、TYPE BODY、TRIGGER或JAVA CLASS(Oracle8i使用)。
  referenced_owner Y VARCHAR2(30)          相关对象的所有者
  referenced_name Y VARCHAR2(64)              相关对象名称
  referenced_type Y VARCHAR2(17)              相关对象类型
  referenced_link_name Y VARCHAR2(128)     与引用对象连接的数据库连接名称(在引用对象为远程数据库时)
  schemaid Y NUMBER                        模式序号(等价于userid的值)
  dependency_type Y VARCHAR2(4)               相关类型:HARD(确实、接近),REF(参考)物化视图与表的相关性  
 2.限制     user_constraints                 表的限制(约束)
   user_constraints                               约束
  owner N VARCHAR2(30)                     所有者
  constraint_name N VARCHAR2(30)             约束名
  constraint_type Y VARCHAR2(1)              约束类型 包括:P,U,R,C
  table_name N VARCHAR2(30)                 表名
  search_condition Y LONG(0)              约束类型为C时的约束(条件)
  r_owner Y VARCHAR2(30)                     外键关联的主键的所有者
  r_constraint_name Y VARCHAR2(30)         外键关联的主键
  delete_rule Y VARCHAR2(9)                  级联删除规则:NO ACTION 不做处理,SET NULL 设置为空,CASCADE 级联删除
  status Y VARCHAR2(8)                      状态:enable 有效,disable 无效
  deferrable Y VARCHAR2(14)                   是否延期  NOT DEFERRABLE
  deferred Y VARCHAR2(9)                    延期处理类型  IMMEDIATE
  validated Y VARCHAR2(13)                   经过验证的  VALIDATED
  generated Y VARCHAR2(14)                   生成的;发生的
  bad Y VARCHAR2(3)
  rely Y VARCHAR2(4)                      依赖
  last_change Y DATE(7)                      最末一次修改时间
  index_owner Y VARCHAR2(30)                 相关索引的所有者
  index_name Y VARCHAR2(30)                 相关索引(名)
  invalid Y VARCHAR2(7)
  view_related Y VARCHAR2(14)

Oracle数据字典全解的更多相关文章

  1. Oracle数据字典详解

    学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图.然后列出一些附例.   数据字典系统表,保存在system表空间中. ...

  2. 【转载】Oracle数据字典详解

    转自:http://czmmiao.iteye.com/blog/1258462 Oracle数据字典概述 数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是 ...

  3. OEL5.5安装Oracle 11gr2详解

    虚拟机环境:Vmware Workstation 11.1.0 + Oracle Enterprise Linux 5.5 X86-641.物理机内存设置 最小:1GB 推荐:2GB或以上 检测内存大 ...

  4. Oracle索引详解

    Oracle索引详解(二) --索引分类   Oracle 提供了大量索引选项.知道在给定条件下使用哪个选项对于一个程序的性能来说非常重要.一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程 ...

  5. Oracle内存详解之 Library cache 库缓冲

    Oracle内存详解之 Library cache 库缓冲 2017年11月09日 11:38:39 阅读数:410更多 个人分类: 体系结构 Library cache是Shared pool的一部 ...

  6. 【Oracle】详解ORACLE中的trigger(触发器)

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

  7. 问题:Oracle出发器;结果:1、Oracle触发器详解,2、Oracle触发器示例

    ORACLE触发器详解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创 ...

  8. (转)oracle视图详解

    Oracle视图详解   一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的.视图只有逻辑定义.每次使用的时候,只是重新执 ...

  9. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    封面:洛小汐 作者:潘潘 2021年,仰望天空,脚踏实地. 这算是春节后首篇 Mybatis 文了~ 跨了个年感觉写了有半个世纪 ... 借着女神节 ヾ(◍°∇°◍)ノ゙ 提前祝男神女神们越靓越富越嗨 ...

随机推荐

  1. Thinkphp5.0 模型hasOne、hasMany、belongsTo详解

    ThinkPHP5有关联模型的操作,但有部分初学者对数据表中常见的几种表与表的关系还存在着问题,所以使用不好关联查询. 这里将hasOne.hasMany.belongsTo进行一个详细举例说明. 首 ...

  2. 【CRT相关配置】

    1.选项——会话选项 2.回话调整如下: 3.日志文件记录保存,即保存所有输入的命令 文件名:%S-%T-%M-%D.txt,表示每天会存放到一个文件 选择:在连接上启动记录 和  追加到文件

  3. 运行Jmeter时,响应数据中文乱码问题解决办法

    需要修改jmeter中的配置,在Jmeter安装目录/bin/jmeter.properties文件中进行修改: sampleresult.default.encoding默认为ISO-8859-1, ...

  4. Hdu 1068 最小路径覆盖

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. 使用php实现单点登录

    1.准备两个虚拟域名 127.0.0.1  www.openpoor.com 127.0.0.1  www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP [ ...

  6. WPF MVVM简单介绍

     前面文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 我们不管 ...

  7. 【Pyqt5】之高级控件QTableWidget的使用

    1:动态渲染数据+动态添加控件(按钮,进度条) class MainWindow(QWidget, Ui_MainFrom): def __init__(self): super(MainWindow ...

  8. 洛谷 P1858 多人背包 DP

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 题面 题目链接 洛谷 P1858 多人背包 题目描述 求01背包前k优解的价值 ...

  9. SQL SERVER 2008 R2 插入数据非常慢

    表是5字段int类型,第一个字段是主健,自增字段 表结构: id int  Uncheckedbillno bigint  Uncheckedopid int  Checkedbillopid int ...

  10. 工信部<<大数据产业发展规划>>

    大数据产业发展规划 (2016-2020年) 发布时间:2017-01-17  来源:规划司 数据是国家基础性战略资源,是21世纪的“钻石矿”.党中央.国务院高度重视大数据在经济社会发展中的作用,党的 ...