Oracle查找包共用,oracle – 用于查找包的多级依赖关系的脚本
对于大多数情况,您可以在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 – 用于查找包的多级依赖关系的脚本相关推荐
- linux查看服务依赖关系图,技术|教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性
我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作.对于终端用户,RPM的安装.更新.删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等) ...
- python导入包相当于什么_Python包及其定义和引用详解
对于一个需要实际应用的模块而言,往往会具有很多程序单元,包括变量.函数和类等,如果将整个模块的所有内容都定义在同一个 Python 源文件中,这个文件将会变得非常庞大,显然并不利于模块化开发. 什么是 ...
- 插件~Nuget中包与包的依赖关系
在Nuget管理包时,有可能A包的存在需要B包的支持,A包在安装之前,需要先安装B包,这就叫做依赖关系,而在NUGET里,确实有这种概念,比如大叔的Lind.DDD.Manager包,它就依赖于Lin ...
- linux程序包覆盖安装,Linux—程序包安装与管理
1.软件包是对于一种软件所进行打包的方式.在不同的操作系统中,软件包的类型有很大的区别. 对于Linux系统中,软件包主要以两种形式出现:二进制包以及源代码包. 二进制包: 1)传统的red hat ...
- oracle 49152,使用 snoop 命令监视包传送 - Oracle Solaris 管理:IP 服务
使用 snoop 命令监视包传送 可以使用 snoop 命令监视数据传送的状态.snoop 捕获网络包并以指定的格式显示其内容.系统收到包或将其保存到文件之后,便会立即显示这些包.当 snoop 向中 ...
- 分析Oracle有时会用索引来查找数据的原因-oracle执行计划
http://www.webjx.com/database/oracle-140.html 问:为什么Oracle有时会用索引来查找数据? 答:在你运用SQL语言,向数据库发布一条查询语句时,Orac ...
- Oracle包和包体以及与非包体定义函数、过程的区别
1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle包和包体与自定义函数,过程区别 2.1 如果直接crea ...
- 《JavaScript开发框架权威指南》——1.4 查找、添加和删除Bower包
本节书摘来自异步社区<JavaScript开发框架权威指南>一书中的第1章,第1.4节,作者:[美]Tim Ambler , Nicholas Cloud著,更多章节内容可以访问云栖社区& ...
- oracle 包和包体禁用,Oracle包和包体以及与非包体定义函数、过程的区别
Oracle包和包体以及与非包体定义函数.过程的区别. 1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle ...
最新文章
- 连这几个源码都没啃透,那面试高级开发的事等等再来!
- [转]jquery的一个模板引擎-zt
- [转] Oracle中Blob转Clob
- 为什么我喜欢写即时通讯软件呢?
- 成都Uber优步司机奖励政策(3月23日)
- oracle中的sysdba角色,oracle 以sysdba角色 登陆用户
- 留言查看的代码php,php留言板后台管理-查看代码
- 枪火游侠服务器停机维护,腾讯《枪火游侠》公布国服停运公告 11月30日正式关服...
- 多元函数(multivariate function)分析(方向导数和梯度)
- 散粉在哪个步骤用_无限回购的散粉
- HDU 2545 树上战争(并查集)
- 贝叶斯概率推断:短信数据推断行为
- c语言同构数怎么表示,C语言求同构数
- 电脑使用速度变慢的七大常见原因
- 企业级业务架构如何设计?
- RPA案例 | 电商使用超自动化平台提升运营精细化
- 记一次HBuilder X 封装H5 + 微信登录
- php算法,记录PHP常见的几种算法
- 算法---斐波那契思想
- 优粮生活炒菜机器人_【O2O案例】优粮生活:一个餐饮人该有的产品精神
热门文章
- C#语法:多线程编程(Thread)
- Java垃圾回收(GC)、找垃圾的方式、GC Root、GC停顿、引用、垃圾收集算法、收集器、GC日志、安全点、安全区域
- Linux中fork函数的作用及用法
- 数据结构与算法 / 分治算法
- OpenLDAP / Ubuntu 18.04 下 docker 版安装
- malloc 两种实现方式:brk 和 mmap
- php两段音频合成一个,两段音乐合并 如何将两段音乐合并成一个音乐文件
- 百度希壤元宇宙平台上线首个汽车数字展厅 领克探索汽车营销新方式
- python基础函数图_Python基础:函数
- flask 开发接口测试平台