zoukankan      html  css  js  c++  java
  • Script:List OBJECT DEPENDENT

    以下脚本用以列出数据库中对象的依赖性:
    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' ;
  • 相关阅读:
    python中以带mixin命名的类有什么特点?
    php使用redis做缓存和使用redis保存session
    python连接hive数据库count查询慢的解决办法
    内网环境数据库查看工具使用笔记支持hive edismysql
    深入mysql的视图复习笔记
    Laravel 整合IOS苹果授权登录(JWT验证模式)
    PHP 读取PDF文件内容之PdfParser
    git发生冲突:error: Your local changes to the following files would be overwritten by merge
    PHP 创建GUID唯一标识
    Laravel 模型关联、关联查询、预加载使用实例
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2967275.html
Copyright © 2011-2022 走看看