Oracle如何获取指定包

   oracle 获取某个包 依赖的所有对象包括其子对象

  使用了一个一个临时表 记录了已经遍历的 节点

  同时 使用了层数来记录已经遍历的 包

  效率一般,可以改动性大

  declare

  -- 获取相应的 某个程序包 所需要应用的包

  cursor p_cur(p_name varchar2) is

  select dd.name, dd.type, dd.referenced_name, dd.referenced_type

  from dba_dependencies dd

  where 1 = 1

  and dd.referenced_type in

  ('PACKAGE', 'SYNONYM', 'TABLE', 'SEQUENCE')

  and dd.type in ('PACKAGE', 'PACKAGE BODY')

  AND dd.name = p_name;

  cursor p_temp(l_level number) is

  select attribute1, attribute2

  from cux_common_imports_temp

  where attribute2 = l_level;

  p_root_name varchar2(30);

  p_level number := 0;

  p_count number := 0;

  begin

  --将根节点 放入到表中

  p_root_name := 'CUX_SBU_COMMON';

  insert into cux_common_imports_temp

  (attribute1, attribute2)

  values

  (p_root_name, p_level);

  p_count := 1;

  --循环这一层的 节点 并获得其子节点

  while p_count != 0 loop

  for p_loop in p_temp(p_level) loop

  --下一层

  p_level := p_level + 1;

  p_root_name := p_loop.attribute1;

  for p_rec in p_cur(p_root_name) loop

  if p_rec.referenced_type = 'PACKAGE' then

  --如果表内 没有这个程序就 加入到 临时表中

  select count(*)

  into p_count

  from cux_common_imports_temp

  where attribute1 = p_rec.referenced_name;

  if p_count = 0 then

  insert into cux_common_imports_temp

  (attribute1, attribute2)

  values

  (p_rec.referenced_name, p_level);

  end if;

  --输出相应的 子节点信息

  dbms_output.put_line(p_level || '-Name:' ||

  p_rec.referenced_name || '-Type:' ||

  p_rec.referenced_type);

  end if;

  end loop;

  end loop;

  --获取 该层是否为空

  select count(*)

  into p_count

  from cux_common_imports_temp

  where attribute2 = p_level;

  end loop;

  end;

时间: 2025-01-30 16:29:13

Oracle如何获取指定包的相关文章

遍历指定包名下所有的类(支持jar)(转)

  支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度. 通过Thread.currentThread().getContextClassLoader()获取ClassLoader实例将包名转为路径名后,做为参数传给CloassLoader.getResources(),以得到该路径下所有资源的URL;通过URL.getProtocol()方法,判断资源是在本地(file:)或是第三方jar包(jar:)内;在本地的类直接文件遍历即可;第三方jar则

LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址

在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址. (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取struct in_pktinfo(struct in_pktinfo是struct msghdr中msg_control的成员).in_pktinfo 结构体(如下所示),我们可以从in_pktinfo中获取路由目的地址(destination address of the packet).头标识

java 获取指定目录下的所有文件

Java ,如何获取指定目录下的所有文件呢? 看代码: Java代码   /***       * 获取指定目录下的所有的文件(不包括文件夹),采用了递归       *        * @param obj       * @return       */       public static ArrayList<File> getListFiles(Object obj) {           File directory = null;           if (obj inst

apk-Android 如何获取 指定的APK icon;

问题描述 Android 如何获取 指定的APK icon; 如果我知道 apk的包名 或者 apk 名: 我该如何获取这个apk的icon??? 有大神知道吗? 解决方案 代码如下: package com.gem.hsx; import java.io.File; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import andro

jquery-使用Jquery 获取指定标签的对象的问题

问题描述 使用Jquery 获取指定标签的对象的问题 像这类的 <div class="page-info"> <span class="time-source"> 2015年02月06日10:27 <span data-sudaclick="media_name"><a href="http://www.lwdf.cn/article_981_1.html" target="

php中获取指定IP的物理地址的代码(正则表达式)

自己搭建IP数据库占资源,而且更新不便,何不使用现成的IP查询呢?下面自己写了个获取IP物理地址的PHP代码(有一定的瑕疵,请高手不吝赐教) 复制代码 代码如下: <!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8" /> <meta name="author" con

获取指定IP的终端的MAC地址

    因为业务需要,需要给公司部分终端进行登记,以保证授权终端能够登录业务系统,最好的方法就是记录下每台终端的MAC地址来进行验证是否有授权.     下面是采用调用API的方式获取指定IP的终端的MAC地址:   [DllImport("Iphlpapi.dll")]  public static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);  //dest为目标机器的IP;

Delphi中获取指定年月的周、日数

WeeksInAYear.WeeksInYear.DaysInAYear.DaysInAMonth.DaysInYear.DaysInMonth - 获取指定年月的周.日数 DateUtils.DaysInYear(); DateUtils.DaysInMonth(); DateUtils.DaysInAYear(); DateUtils.DaysInAMonth(); DateUtils.WeeksInYear(); DateUtils.WeeksInAYear(); unit Unit1;

C# 如何获取指定目录包含的文件和子目录

 如何获取指定目录包含的文件和子目录 1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找: 2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找: 3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInf