【视图】oracle 数据字典视图之 DBA_OBJECTS / ALL_OBJECTS / USER_OBJECTS(OBJ)

本文介绍了Oracle数据库中的三个重要视图:DBA_OBJECTS(所有数据库对象)、ALL_OBJECTS(当前用户可访问的对象)和USER_OBJECTS(当前用户拥有的对象)。这些视图提供了关于数据库对象的关键信息,其中DBA_OBJECTS包含所有对象,USER_OBJECTS不显示OWNER列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. DBA_OBJECTS / ALL_OBJECTS / USER_OBJECTS(OBJ)视图是非常非常常用的数据视图,可以获得数据库中任意的对象
sys@ora10g> desc dba_objects;
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------------------
 OWNER                                              VARCHAR2(30)
 OBJECT_NAME                                        VARCHAR2(128)
 SUBOBJECT_NAME                                     VARCHAR2(30)
 OBJECT_ID                                          NUMBER
 DATA_OBJECT_ID                                     NUMBER
 OBJECT_TYPE                                        VARCHAR2(19)
 CREATED                                            DATE
 LAST_DDL_TIME                                      DATE
 TIMESTAMP                                          VARCHAR2(19)
 STATUS                                             VARCHAR2(7)
 TEMPORARY                                          VARCHAR2(1)
 GENERATED                                          VARCHAR2(1)
 SECONDARY                                          VARCHAR2(1)

sys@ora10g> select count(*) from dba_objects;

  COUNT(*)
----------
     11441

sys@ora10g> select count(*) from obj;

  COUNT(*)
----------
      6751

sys@ora10g> select count(*) from user_objects;

  COUNT(*)
----------
      6751

sys@ora10g> select count(*) from all_objects;

  COUNT(*)
----------
     11376

sys@ora10g> conn sec/sec
Connected.

sec@ora10g> select object_name,object_type from obj;

OBJECT_NAME                    OBJECT_TYPE
------------------------------ -------------------
TEST                           TABLE
STATS_TEST                     TABLE

2.通过查看catalog.sql获得oracle创建DBA_OBJECTS数据字典视图的语句
create or replace view DBA_OBJECTS
    (OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID,
     OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS,
     TEMPORARY, GENERATED, SECONDARY)
as
select u.name, o.name, o.subname, o.obj#, o.dataobj#,
       decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
                      4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
                      7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
                      11, 'PACKAGE BODY', 12, 'TRIGGER',
                      13, 'TYPE', 14, 'TYPE BODY',
                      19, 'TABLE PARTITION', 20, 'INDEX PARTITION', 21, 'LOB',
                      22, 'LIBRARY', 23, 'DIRECTORY', 24, 'QUEUE',
                      28, 'JAVA SOURCE', 29, 'JAVA CLASS', 30, 'JAVA RESOURCE',
                      32, 'INDEXTYPE', 33, 'OPERATOR',
                      34, 'TABLE SUBPARTITION', 35, 'INDEX SUBPARTITION',
                      40, 'LOB PARTITION', 41, 'LOB SUBPARTITION',
                      42, NVL((SELECT distinct 'REWRITE EQUIVALENCE'
                               FROM sum$ s
                               WHERE s.obj#=o.obj#
                                     and bitand(s.xpflags, 8388608) = 8388608),
                              'MATERIALIZED VIEW'),
                      43, 'DIMENSION',
                      44, 'CONTEXT', 46, 'RULE SET', 47, 'RESOURCE PLAN',
                      48, 'CONSUMER GROUP',
                      51, 'SUBSCRIPTION', 52, 'LOCATION',
                      55, 'XML SCHEMA', 56, 'JAVA DATA',
                      57, 'SECURITY PROFILE', 59, 'RULE',
                      60, 'CAPTURE', 61, 'APPLY',
                      62, 'EVALUATION CONTEXT',
                      66, 'JOB', 67, 'PROGRAM', 68, 'JOB CLASS', 69, 'WINDOW',
                      72, 'WINDOW GROUP', 74, 'SCHEDULE', 79, 'CHAIN',
                      81, 'FILE GROUP',
                     'UNDEFINED'),
       o.ctime, o.mtime,
       to_char(o.stime, 'YYYY-MM-DD:HH24:MI:SS'),
       decode(o.status, 0, 'N/A', 1, 'VALID', 'INVALID'),
       decode(bitand(o.flags, 2), 0, 'N', 2, 'Y', 'N'),
       decode(bitand(o.flags, 4), 0, 'N', 4, 'Y', 'N'),
       decode(bitand(o.flags, 16), 0, 'N', 16, 'Y', 'N')
from sys.obj$ o, sys.user$ u
where o.owner# = u.user#
  and o.linkname is null
  and (o.type# not in (1  /* INDEX - handled below */,
                      10 /* NON-EXISTENT */)
       or
       (o.type# = 1 and 1 = (select 1
                              from sys.ind$ i
                             where i.obj# = o.obj#
                               and i.type# in (1, 2, 3, 4, 6, 7, 9))))
  and o.name != '_NEXT_OBJECT'
  and o.name != '_default_auditing_options_'
  and bitand(o.flags, 128) = 0
union all
select u.name, l.name, NULL, to_number(null), to_number(null),
       'DATABASE LINK',
       l.ctime, to_date(null), NULL, 'VALID','N','N', 'N'
from sys.link$ l, sys.user$ u
where l.owner# = u.user#
/

3.oracle官方文档中关于ALL_OBJECTS的描述

ALL_OBJECTS

ALL_OBJECTS describes all objects accessible to the current user.

Related Views

  • DBA_OBJECTS describes all objects in the database.

  • USER_OBJECTS describes all objects owned by the current user. This view does not display the OWNER column.

ColumnDatatypeNULLDescription
OWNERVARCHAR2(30)NOT NULLOwner of the object
OBJECT_NAMEVARCHAR2(30)NOT NULLName of the object
SUBOBJECT_NAMEVARCHAR2(30)
Name of the subobject (for example, partition)
OBJECT_IDNUMBERNOT NULLDictionary object number of the object
DATA_OBJECT_IDNUMBER
Dictionary object number of the segment that contains the object



Note: OBJECT_ID and DATA_OBJECT_ID display data dictionary metadata. Do not confuse these numbers with the unique 16-byte object identifier (object ID) that the Oracle Database assigns to row objects in object tables in the system.
OBJECT_TYPEVARCHAR2(19)
Type of the object (such as TABLE, INDEX)
CREATEDDATENOT NULLTimestamp for the creation of the object
LAST_DDL_TIMEDATENOT NULLTimestamp for the last modification of the object resulting from a DDL statement (including grants and revokes)
TIMESTAMPVARCHAR2(20)
Timestamp for the specification of the object (character data)
STATUSVARCHAR2(7)
Status of the object (VALID, INVALID, or N/A)
TEMPORARYVARCHAR2(1)
Whether the object is temporary (the current session can see only data that it placed in this object itself)
GENERATEDVARCHAR2(1)
Indicates whether the name of this object was system generated (Y) or not (N)
SECONDARYVARCHAR2(1)
Whether this is a secondary object created by the ODCIIndexCreate method of the Oracle Data Cartridge (Y | N)

4.小结
数据库中包含数以万计的对象, DBA_OBJECTS / ALL_OBJECTS / USER_OBJECTS(OBJ)这些视图就像是一个小爬犁,通过这些视图可以很快的了解某个SCHEMA包含的内容。

Good luck.

secooler
09.03.18

-- The End --

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

转载于:http://blog.itpub.net/519536/viewspace-571440/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值