public_dependency如何包含对不在all_objects中的对象的引用?

时间:2014-07-02 21:27:24

标签: oracle oracle11g

我有以下查询:

select * from public_dependency  pd 
where REFERENCED_OBJECT_ID = 305318

奇怪的是,这会返回26行。当我加入引用的对象时,我得到三个空行,但计数为26.如果我使用' join'我回来了23排。因此,有些对象似乎不在all_objects但在public_dependency中。

select * from public_dependency  pd 
left join all_objects o on o.OBJECT_ID = pd.OBJECT_ID
where REFERENCED_OBJECT_ID = 305318

public_dependency中的对象如何可能不在all_objects中?

1 个答案:

答案 0 :(得分:1)

all_objects仅显示您拥有权限的对象,而不是数据库中的所有对象。如果您有权这样做,则需要查询dba_objects以查看所有内容。

public_dependency似乎包含您没有权限的对象的对象ID。他们自己的客观ID不会告诉你太多,所以它不会透露任何你无法看到的对象(除了那些你无法看到的对象)。

因此,两个视图所引用的明显不一致并不奇怪。查询all_dependencies可能会为您提供更加一致的图片。