我有以下查询:
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
中?
答案 0 :(得分:1)
all_objects
仅显示您拥有权限的对象,而不是数据库中的所有对象。如果您有权这样做,则需要查询dba_objects
以查看所有内容。
public_dependency
似乎包含您没有权限的对象的对象ID。他们自己的客观ID不会告诉你太多,所以它不会透露任何你无法看到的对象(除了那些你无法看到的对象)。
因此,两个视图所引用的明显不一致并不奇怪。查询all_dependencies
可能会为您提供更加一致的图片。