Script:List OBJECT DEPENDENT

作者: Maclean Liu , post on June 17th, 2009 , English Version
【本站文章除注明转载外,均为本站原创编译】
转载请注明:文章转载自: Oracle Clinic – Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/]
本文标题: Script:List OBJECT DEPENDENT
本文永久地址: http://www.oracledatabase12g.com/archives/script-list-object-dependent.html

以下脚本用以列出数据库中对象的依赖性:

REM OBJECT DEPENDENT 

select D_OBJ#,
       do.object_name,
       do.object_type dtyp,
       do.status      dsta,
       D_TIMESTAMP,
       ORDER#,
       P_OBJ#,
       po.object_name,
       po.object_type ptyp,
       po.status      psta,
       P_TIMESTAMP
  from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po
 where D_OBJ# = do.object_ID
   and P_OBJ# = po.object_ID
   and do.object_ID in
       (select object_id from dba_objects where OBJECT_NAME = '&OBJNAME')
/

Select object_id, referenced_object_id, level
 from public_dependency
start with object_id = (Select object_id
from sys.DBA_OBJECTS
WHERE owner        = upper('&owner')
AND   object_name  = upper('&name')
AND   object_type  = upper('&type'))
connect by prior referenced_object_id = object_id
/

Select to_char(object_id) object_id, to_char(referenced_object_id) referenced_object_id, to_char(level) "LEVEL"
 from public_dependency
connect by prior object_id = referenced_object_id
start with referenced_object_id = (
   Select object_id from sys.DBA_OBJECTS
WHERE owner        = upper('&owner')
AND   object_name  = upper('&name')
AND   object_type  = upper('&type'))
/

set feedback off
set ver off
set pages 10000
column Owner format "A10"
column Obj#  format "9999999999"
column Object format "A35"
rem
ACCEPT OWN   CHAR PROMPT "Enter OWNER pattern: "
ACCEPT NAM   CHAR PROMPT "Enter OBJECT NAME pattern: "
prompt
prompt Objects matching &&OWN..&&NAM
prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
select o.obj# "Obj#",
       decode(o.linkname, null, u.name||'.'||o.name,
        o.remoteowner||'.'||o.name||'@'||o.linkname) "Object",
       decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
                       4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
                       7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
                      10, '*Not Exist*',
                      11, 'PKG 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, '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',
                      62, 'EVALUATION CONTEXT', 66, 'JOB', 67, 'PROGRAM',
                      68, 'JOB CLASS', 69, 'WINDOW', 72, 'WINDOW GROUP',
                      74, 'SCHEDULE', 'UNDEFINED') "Type",
       decode(o.status,0,'N/A',1,'VALID', 'INVALID') "Status"
  from sys.obj$ o, sys.user$ u
 where owner#=user#
   and u.name like upper('&&OWN') and o.name like upper('&&NAM') ;
prompt
ACCEPT OBJID CHAR PROMPT "Enter Object ID required: "
prompt
prompt
prompt Object &&OBJID is:
prompt ~~~~~~~~~~~~~~~~~~~
select o.obj# "Obj#",
       decode(o.linkname, null, u.name||'.'||o.name,
        o.remoteowner||'.'||o.name||'@'||o.linkname) "Object",
       decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
                       4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
                       7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
                      10, '*Not Exist*',
                      11, 'PKG 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, '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',
                      62, 'EVALUATION CONTEXT', 66, 'JOB', 67, 'PROGRAM',
                      68, 'JOB CLASS', 69, 'WINDOW', 72, 'WINDOW GROUP',
                      74, 'SCHEDULE', 'UNDEFINED') "Type",
       decode(o.status,0,'N/A',1,'VALID', 'INVALID') "Status",
       substr(to_char(stime,'DD-MON-YYYY HH24:MI:SS'),1,20) "S-Time"
  from sys.obj$ o, sys.user$ u
 where owner#=user# and o.obj#='&&OBJID' ;
prompt
prompt Depends on:
prompt ~~~~~~~~~~~~
select o.obj# "Obj#",
       decode(o.linkname, null,
        nvl(u.name,'Unknown')||'.'||nvl(o.name,'Dropped?'),
        o.remoteowner||'.'||nvl(o.name,'Dropped?')||'@'||o.linkname) "Object",
       decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
                       4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
                       7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
                      10, '*Not Exist*',
                      11, 'PKG 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, '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',
                      62, 'EVALUATION CONTEXT', 66, 'JOB', 67, 'PROGRAM',
                      68, 'JOB CLASS', 69, 'WINDOW', 72, 'WINDOW GROUP',
                      74, 'SCHEDULE', 'UNDEFINED') "Type",
        decode(sign(stime-P_TIMESTAMP),
                  1,'*NEWER*',-1,'*?OLDER?*',null,'-','-SAME-')
"TimeStamp",
decode(o.status,0,'N/A',1,'VALID','INVALID') "Status"
  from sys.dependency$ d,  sys.obj$ o, sys.user$ u
 where P_OBJ#=obj#(+) and o.owner#=u.user#(+) and D_OBJ#='&&OBJID' ;

© 2009 – 2012, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.

相关文章 | Related posts:

  1. QREF: Library Object Lock State Object
  2. Script:Logfile Switch Frequency Map
  3. Script: Computing Table Size
  4. Diagnosing ORA-14097 On Alter Table Exchange Partition
  5. SCRIPT TO GENERATE SQL*LOADER CONTROL FILE
  6. Script:收集数据库安全风险评估信息
  7. Script:To Report Information on Indexes
  8. Script:when transaction will finish rollback
  9. Global statistics – An Explanation
  10. Script to show Active Distributed Transactions

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>