怎样去定位你所未知的对象

原创 2004年07月05日 17:52:00

 

    前几天看见有人问怎么查找某个view引用了什么表,或者某个表被那些对象引用,偶当时没有注意,今天朋友问到了.
    我想是有view表达这种依赖关系的,于是,偶打开 dba studio ,进入 方案---视图---sys,然后快速浏览 dba_* 这样的view,根据经验判断很多view不是所需要的,终于看到一个view : dba_dependencies,英文不大利索,猜测可能是。

SQL> desc dba_dependencies
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
NAME NOT NULL VARCHAR2(30)
TYPE VARCHAR2(17)
REFERENCED_OWNER VARCHAR2(30)
REFERENCED_NAME VARCHAR2(64)
REFERENCED_TYPE VARCHAR2(17)
REFERENCED_LINK_NAME VARCHAR2(128)
DEPENDENCY_TYPE VARCHAR2(4)

select u.name, o.name,
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, 'NON-EXISTENT',
11, 'PACKAGE BODY', 12, 'TRIGGER',
13, 'TYPE', 14, 'TYPE BODY',
28, 'JAVA SOURCE', 29, 'JAVA CLASS', 56, 'JAVA DATA',
'UNDEFINED'),
decode(po.linkname, null, pu.name, po.remoteowner), po.name,
decode(po.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE', 7, 'PROCEDURE',
8, 'FUNCTION', 9, 'PACKAGE', 10, 'NON-EXISTENT',
11, 'PACKAGE BODY', 12, 'TRIGGER',
13, 'TYPE', 14, 'TYPE BODY',
28, 'JAVA SOURCE', 29, 'JAVA CLASS', 56, 'JAVA DATA',
'UNDEFINED'),
po.linkname,
decode(d.property, 2, 'REF', 'HARD')
from sys.obj$ o, sys.disk_and_fixed_objects po, sys.dependency$ d, sys.user$ u,
sys.user$ pu
where o.obj# = d.d_obj#
and o.owner# = u.user#
and po.obj# = d.p_obj#
and po.owner# = pu.user#



    到这里基本已经99% 确认是了,再测试,果然是这个view记录了相关的依赖关系。

    下面再说一个我常用的办法,那么多东西要记住很麻烦,我也记不了那么多,有时觉得打开 OEM /dba studio 也很麻烦于是,假如我要查有关 role 相关的东西,于是

SQL> select object_name from dba_objects where object_name like '%ROLE%';

OBJECT_NAME
--------------------------------------------------------------------------------
DBA_ROLES
DBA_ROLE_PRIVS
DEFROLE$
I_DEFROLE1
JIS$ROLE_TRIGGER$
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_ROLES
USER_ROLE_PRIVS
DBA_ROLES

OBJECT_NAME
--------------------------------------------------------------------------------
DBA_ROLE_PRIVS
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_ROLES
USER_ROLE_PRIVS
VBZ$RG_ROLE_OIDX
VBZ$ROLE_GRANTS

19 rows selected.

     大家在这里结果里面一看,是不是就知道哪些视图记录了相关内容?最多,在 desc 看一下,或者再实验来检验一下,这时查文档也可以,很容易就定位了,这是个人在不熟悉view的时候长期使用的一种办法,说起来很简单,但是却很有效!!!!

怎样去定位你所未知的东西:尤其是想知道哪个view查询什么内容

假如我要查有关 role 相关的东西,倚重dba_objects,于是:         SQL> select object_name from dba_objects where object_n...
  • linwaterbin
  • linwaterbin
  • 2012年10月12日 19:57
  • 1315

你所未知的人工智能应用领域

来源:199IT互联网数据中心 概要:一组专家为我们详细描述了随着我们所使用的机器变得越来越智能,我们周围的世界正在如何发生变化的图景。 对有些人来说,人工智能和机器人技术的普及对我们...
  • cf2SudS8x8F0v
  • cf2SudS8x8F0v
  • 2017年10月05日 00:00
  • 103

this和对象——源自《你所不知道的JavaScript》

this关于this的错误观点: 1、this指向函数自身。 但其实,this并不指向函数自身。有一种传统的但是现在已经被弃用和批判的用法,是使用 arguments. callee 来引用当前...
  • u014328357
  • u014328357
  • 2017年03月10日 16:24
  • 312

你所知道的集合类都有哪些?主要方法?(面试都会问)

 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用...
  • yangjixiang_hao123
  • yangjixiang_hao123
  • 2009年11月09日 14:47
  • 14519

如果有一天: 你不再寻找爱情,只是去爱;你不再渴望成功,只是去做;你不再追求成长,只是去修;一切才真正开始! —— 纪伯伦

如果有一天: 你不再寻找爱情,只是去爱;你不再渴望成功,只是去做;你不再追求成长,只是去修;一切才真正开始! —— 纪伯伦...
  • moon_prince2013
  • moon_prince2013
  • 2015年12月02日 19:41
  • 1654

授权时出现“你所访问的站点在新浪微博的认证失败”error:redirect_uri_mismatch

今天做了一个新浪微博oauth2.0授权认证 测试认证时一直出错 授权时出现“你所访问的站点在新浪微博的认证失败”error:redirect_uri_mismatch 网上查了查都说是应用...
  • wangzhen19891010
  • wangzhen19891010
  • 2014年03月10日 19:24
  • 4668

遇见未知的自己……

【 遇见未知的自己 】 [作者名] 张德芬    [类别] 时尚生活   [最后更新时间] 2011-03-26 20:43:43.0          正文        自序 [本...
  • kakaxia6337
  • kakaxia6337
  • 2012年04月23日 10:41
  • 20246

《如何及时处理你的坏心情》第二章:我们所担心的事情,99%是不会发生的

《如何及时处理你的坏心情》第二章:我们所担心的事情,99%是不会发生的
  • gdut2015go
  • gdut2015go
  • 2015年11月16日 11:42
  • 1142

你所知道的集合类都有哪些?主要方法?

最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值...
  • Victory_Lei
  • Victory_Lei
  • 2017年05月21日 00:27
  • 651

4. 请说出你所知道的线程同步的方法。

 4. 请说出你所知道的线程同步的方法。 答:(1).同步代码块synchronized(object){  代码段 }        (2)同步函数public synchronized void ...
  • wangbinjr
  • wangbinjr
  • 2006年09月12日 10:09
  • 1948
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样去定位你所未知的对象
举报原因:
原因补充:

(最多只允许输入30个字)