对于大多数情况,您可以在user_dependencies上使用connect by.

确定依赖关系

适用于任何Oracle用户的示例,因为PUBLIC已被授予对user_dependencies的select访问权限:

select name,type,prior name,prior type

from user_dependencies

start

with name='BUBS#MUNT_EENHEDEN'

and type='PACKAGE'

connect

by nocycle

name = prior referenced_name

and type = prior referenced_type

样本输出

Level 1: BUBS#MUNT_EENHEDEN PACKAGE

Level 2: BUBS_MUNT_EENHEDEN_V VIEW BUBS#MUNT_EENHEDEN PACKAGE

Level 3: BUBS#VERTALINGEN PACKAGE BUBS_MUNT_EENHEDEN_V VIEW

Level 4: ITGEN_LANGUAGES_V VIEW BUBS#VERTALINGEN PACKAGE

复杂的场景

对于复杂的场景,我发现有必要直接在数据字典上使用自己的视图.只有当您知道自己在做什么以及想要支持哪种RDBMS版本时,才能执行此操作!例如,datamodel版本引入了数据字典中的主要更改.

样品:

create or replace force view itgen_object_tree_changes_r

as

select o_master.obj# ojt#,o_master.name ojt_name,o.mtime ojt_ref_mtime,o.name ojt_ref_name,o.owner# ojt_ref_owner#,decode

( o.type#,'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 'REWRITE EQUIVALENCE'

from sys.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,'EDITION',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',82,'MINING MODEL',87,'ASSEMBLY',90,'CREDENTIAL',92,'CUBE DIMENSION',93,'CUBE',94,'MEASURE FOLDER',95,'CUBE BUILD PROCESS','UNDEFINED'

)

ojt_ref_type

from sys.obj$o,( /* All dependencies from the object if there are any. */

select distinct connect_by_root d_obj# obj#,dep.p_obj# obj_ref#

from sys.dependency$dep

connect

by nocycle dep.d_obj# = prior dep.p_obj#

start

with dep.d_obj# in ( select obj.obj# from itgen_schemas_r sma,sys.obj$obj where obj.owner# = sma.owner# )

union all /* Union all allowed,'in' ignores duplicates. */

/* The object itself. */

select obj.obj#,obj.obj#

from itgen_schemas_r sma,sys.obj$obj

where obj.owner# = sma.owner#

) deps,sys.obj$o_master

where o_master.obj# = deps.obj#

and o.obj# = deps.obj_ref#

--

-- View: itgen_object_tree_changes_r

--

-- Overview of dependencies between a master object and all objects used by it. It can be used to analyze the reason why a project version views must be recalculated.

--

-- Code (alias): ote_r

--

-- Category: Hardcoded.

--

-- Example:

--

-- The object 'X' is invalid,since 'Y' is invalid.

--

Oracle查找包共用,oracle – 用于查找包的多级依赖关系的脚本相关推荐

  1. linux查看服务依赖关系图,技术|教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

    我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作.对于终端用户,RPM的安装.更新.删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等) ...

  2. python导入包相当于什么_Python包及其定义和引用详解

    对于一个需要实际应用的模块而言,往往会具有很多程序单元,包括变量.函数和类等,如果将整个模块的所有内容都定义在同一个 Python 源文件中,这个文件将会变得非常庞大,显然并不利于模块化开发. 什么是 ...

  3. 插件~Nuget中包与包的依赖关系

    在Nuget管理包时,有可能A包的存在需要B包的支持,A包在安装之前,需要先安装B包,这就叫做依赖关系,而在NUGET里,确实有这种概念,比如大叔的Lind.DDD.Manager包,它就依赖于Lin ...

  4. linux程序包覆盖安装,Linux—程序包安装与管理

    1.软件包是对于一种软件所进行打包的方式.在不同的操作系统中,软件包的类型有很大的区别. 对于Linux系统中,软件包主要以两种形式出现:二进制包以及源代码包. 二进制包: 1)传统的red hat ...

  5. oracle 49152,使用 snoop 命令监视包传送 - Oracle Solaris 管理:IP 服务

    使用 snoop 命令监视包传送 可以使用 snoop 命令监视数据传送的状态.snoop 捕获网络包并以指定的格式显示其内容.系统收到包或将其保存到文件之后,便会立即显示这些包.当 snoop 向中 ...

  6. 分析Oracle有时会用索引来查找数据的原因-oracle执行计划

    http://www.webjx.com/database/oracle-140.html 问:为什么Oracle有时会用索引来查找数据? 答:在你运用SQL语言,向数据库发布一条查询语句时,Orac ...

  7. Oracle包和包体以及与非包体定义函数、过程的区别

    1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle包和包体与自定义函数,过程区别 2.1 如果直接crea ...

  8. 《JavaScript开发框架权威指南》——1.4 查找、添加和删除Bower包

    本节书摘来自异步社区<JavaScript开发框架权威指南>一书中的第1章,第1.4节,作者:[美]Tim Ambler , Nicholas Cloud著,更多章节内容可以访问云栖社区& ...

  9. oracle 包和包体禁用,Oracle包和包体以及与非包体定义函数、过程的区别

    Oracle包和包体以及与非包体定义函数.过程的区别. 1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle ...

最新文章

  1. 连这几个源码都没啃透,那面试高级开发的事等等再来!
  2. [转]jquery的一个模板引擎-zt
  3. [转] Oracle中Blob转Clob
  4. 为什么我喜欢写即时通讯软件呢?
  5. 成都Uber优步司机奖励政策(3月23日)
  6. oracle中的sysdba角色,oracle 以sysdba角色 登陆用户
  7. 留言查看的代码php,php留言板后台管理-查看代码
  8. 枪火游侠服务器停机维护,腾讯《枪火游侠》公布国服停运公告 11月30日正式关服...
  9. 多元函数(multivariate function)分析(方向导数和梯度)
  10. 散粉在哪个步骤用_无限回购的散粉
  11. HDU 2545 树上战争(并查集)
  12. 贝叶斯概率推断:短信数据推断行为
  13. c语言同构数怎么表示,C语言求同构数
  14. 电脑使用速度变慢的七大常见原因
  15. 企业级业务架构如何设计?
  16. RPA案例 | 电商使用超自动化平台提升运营精细化
  17. 记一次HBuilder X 封装H5 + 微信登录
  18. php算法,记录PHP常见的几种算法
  19. 算法---斐波那契思想
  20. 优粮生活炒菜机器人_【O2O案例】优粮生活:一个餐饮人该有的产品精神

热门文章

  1. C#语法:多线程编程(Thread)
  2. Java垃圾回收(GC)、找垃圾的方式、GC Root、GC停顿、引用、垃圾收集算法、收集器、GC日志、安全点、安全区域
  3. Linux中fork函数的作用及用法
  4. 数据结构与算法 / 分治算法
  5. OpenLDAP / Ubuntu 18.04 下 docker 版安装
  6. malloc 两种实现方式:brk 和 mmap
  7. php两段音频合成一个,两段音乐合并 如何将两段音乐合并成一个音乐文件
  8. 百度希壤元宇宙平台上线首个汽车数字展厅 领克探索汽车营销新方式
  9. python基础函数图_Python基础:函数
  10. flask 开发接口测试平台