在catalog中有这么一段:create or replace view v_$instance as select * from v$instance;
create or replace public synonym v$instance for v_$instance;
grant select on v_$instance to select_catalog_role;第一行中的v$instance是表还是视图,从哪个数据字典中可以找到它的信息,它的拥有者是谁?
view v_$instance 和public synonym v$instance我都能找到。

解决方案 »

  1.   

    v$instance是一个公有同义词
    select * from all_synonyms where synonym_name='V$INSTANCE'OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
    PUBLIC V$INSTANCE SYS V_$INSTANCE --指向sys下的v_$instance.这是一个系统视图
    select * from all_views where view_name='V_$INSTANCE'OWNER VIEW_NAME TEXT_LENGTH TEXT TYPE_TEXT_LENGTH TYPE_TEXT OID_TEXT_LENGTH OID_TEXT VIEW_TYPE_OWNER VIEW_TYPE SUPERVIEW_NAME EDITIONING_VIEW READ_ONLY
    SYS V_$INSTANCE 239 <Long> N N
      

  2.   

    Oracle 11g's data dictionary defines the V$INSTANCE view using the following source query:select INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , VERSION , STARTUP_TIME , STATUS , PARALLEL , THREAD# , ARCHIVER , LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, DATABASE_STATUS, INSTANCE_ROLE, ACTIVE_STATE, BLOCKED from GV$INSTANCE where inst_id = USERENV('Instance')
      

  3.   

    --Oracle 11g's data dictionary defines the V$INSTANCE view using the following source query:select INSTANCE_NUMBER ,
     INSTANCE_NAME ,
     HOST_NAME ,
     VERSION ,
     STARTUP_TIME ,
     STATUS ,
     PARALLEL ,
     THREAD# ,
     ARCHIVER ,
     LOG_SWITCH_WAIT ,
     LOGINS ,
     SHUTDOWN_PENDING,
     DATABASE_STATUS,
     INSTANCE_ROLE,
     ACTIVE_STATE,
     BLOCKED
    from GV$INSTANCE 
    where inst_id = USERENV('Instance')
      

  4.   


    SQL> select owner,object_name,object_type from dba_objects where object_name='V$INSTANCE';OWNER      OBJECT_NAME                    OBJECT_TYPE
    ---------- ------------------------------ -------------------
    PUBLIC     V$INSTANCE                     SYNONYMSQL> select table_name,comments from dictionary where table_name = 'V$INSTANCE';TABLE_NAME           COMMENTS
    -------------------- ----------------------------------------
    V$INSTANCE           Synonym for V_$INSTANCE
      

  5.   

    实际上通常我们大部分用户访问的V$对象,并不是视图,而是指向V_$视图的同义词;而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)。
    X$表只能由sysdba访问v$instance 大概是来自 X$KSUXSINST 表吧
      

  6.   

    X$KSUXSINST 在9i下的sys找不到。
    你的是11G的?
    我就感到疑惑的是:不是同义词的v$instance是怎么东西,去哪找。拥有者是谁
      

  7.   

    oracle中v$开头的有两种:表和同义词
    v_$*是v$*(table)的视图,而v$*(synonym)是v_$*的同义词,v$*(table)的数据由oracle自己写入,用户看到的是v$*(synonym)和v_$*,经过这样的封装之后,oracle系统的表对用户来说就是透明的了,包括dba都不知道也不用知道到底是怎么回事。就拿你说的V$INSTANCE来举例子吧
    SQL> select owner,object_name,object_type from dba_objects where object_name='V$
    INSTANCE';OWNER      OBJECT_NAME                    OBJECT_TYPE
    ---------- ------------------------------ -------------------
    PUBLIC     V$INSTANCE                     SYNONYMSQL> desc dba_synonym
    ERROR:
    ORA-04043: object dba_synonym does not exist
    SQL> desc dba_synonyms
     Name                                      Null?    Type
     ----------------------------------------- -------- ---------------------------- OWNER                                     NOT NULL VARCHAR2(30)
     SYNONYM_NAME                              NOT NULL VARCHAR2(30)
     TABLE_OWNER                                        VARCHAR2(30)
     TABLE_NAME                                NOT NULL VARCHAR2(30)
     DB_LINK                                            VARCHAR2(128)SQL> select owner,synonym_name,table_name from dba_synonyms
      2  where synonym_name='V$INSTANCE';OWNER      SYNONYM_NAME                   TABLE_NAME
    ---------- ------------------------------ ------------------------------
    PUBLIC     V$INSTANCE                     V_$INSTANCESQL> select owner,object_name,object_type from dba_objects where object_name='V_
    $INSTANCE';OWNER      OBJECT_NAME                    OBJECT_TYPE
    ---------- ------------------------------ -------------------
    SYS        V_$INSTANCE                    VIEWSQL> desc dba_views
     Name                                      Null?    Type
     ----------------------------------------- -------- ---------------------------- OWNER                                     NOT NULL VARCHAR2(30)
     VIEW_NAME                                 NOT NULL VARCHAR2(30)
     TEXT_LENGTH                                        NUMBER
     TEXT                                               LONG
     TYPE_TEXT_LENGTH                                   NUMBER
     TYPE_TEXT                                          VARCHAR2(4000)
     OID_TEXT_LENGTH                                    NUMBER
     OID_TEXT                                           VARCHAR2(4000)
     VIEW_TYPE_OWNER                                    VARCHAR2(30)
     VIEW_TYPE                                          VARCHAR2(30)
     SUPERVIEW_NAME                                     VARCHAR2(30)
    SQL> select owner,view_name,text from dba_views where view_name='V_$INSTANCE';OWNER      VIEW_NAME
    ---------- ------------------------------
    TEXT
    --------------------------------------------------------------------------------SYS        V_$INSTANCE
    select "INSTANCE_NUMBER","INSTANCE_NAME","HOST_NAME","VERSION","STARTUP_TIME","STATUS","PARALLEL","THREAD#","ARCHIVER","LOG_SWITCH_WAIT","LOGINS","SHUTDOWN_PENDING","DATABASE_STATUS","INSTANCE_ROLE","ACTIVE_STATE","BLOCKED" from v$instance