2017-07-14 69 views
0

在Oracle SQL开发人员GUI中,我打开了一个表格,并且出现了一个带有属性的窗口。这是一个名为Dependencies的窗口选项卡。带有表依赖性的Oracle SQL Developer窗口视图

我发现这个查询:

select OWNER 
     , name 
     , type 
     , referenced_name 
     , referenced_type 
    from all_dependencies; 

但对于像作为Oracle SQL Developer中所有业主没有显示输出。

如何通过查询SQL与所有所有者获得这些结果?

谢谢!

回答

1

有了这样的查询:

select owner, name, type, referenced_owner, referenced_name, referenced_type 
from dba_dependencies 
where referenced_owner = user and referenced_name = 'YOUR_TABLE_NAME'; 

或使用绑定变量:

var object_owner varchar2(30); 
var object_name varchar2(30); 
exec :object_owner := user; 
exec :object_name := 'YOUR_TABLE_NAME'; 

select owner, name, type, referenced_owner, referenced_name, referenced_type 
from dba_dependencies 
where referenced_owner = :object_owner and referenced_name = :object_name ; 

实际上,你可以看到SQL Developer的引擎盖下运行的查询。如果您转到“查看”菜单并选择“日志”,或者点击CtrlShiftL(假设您使用的是Windows),您将获得一个停靠窗口,默认情况下标题为“消息 - 日志”。在底部是两个选项卡,选择“消息”。如果单击“语句”,则可以看到使用的语句和绑定变量。

在这种情况下,有三种说法,当刷新依存关系选项卡发行,其中两个是什么,我上面显示的变化 - 他们得到一些更多的列,并为您的依赖性会两种方式:

select owner, name, type, referenced_owner, referenced_name, referenced_type , 
    owner sdev_link_owner, name sdev_link_name, type sdev_link_type 
from Dba_DEPENDENCIES 
where referenced_owner = :OBJECT_OWNER and referenced_name = :OBJECT_NAME 

select owner, name, type, referenced_owner, referenced_name, referenced_type , 
    referenced_owner sdev_link_owner, referenced_name sdev_link_name, referenced_type sdev_link_type 
from Dba_DEPENDENCIES 
where owner = :OBJECT_OWNER and name = :OBJECT_NAME 

如果你想弄清楚如何复制你能看到的东西,它们是一个很好的开始。

如果你连为不具备必要看dba_dependencies表,SQL开发人员,而不是回落到all_dependencies的权限的用户:

select owner, name, type, referenced_owner, referenced_name, referenced_type , 
    owner sdev_link_owner, name sdev_link_name, type sdev_link_type 
from ALL_DEPENDENCIES 
where referenced_owner = :OBJECT_OWNER and referenced_name = :OBJECT_NAME 

select owner, name, type, referenced_owner, referenced_name, referenced_type , 
    referenced_owner sdev_link_owner, referenced_name sdev_link_name, referenced_type sdev_link_type 
from Dba_DEPENDENCIES 
where owner = :OBJECT_OWNER and name = :OBJECT_NAME 

这只会显示有关对象的信息,你有选择/执行特权。在我上面显示的第一个查询中,您可以将dba_dependencies更改为all_dependencies以查看等效(可见)结果。

如果您以连接到SQL Developer的相同用户身份手动运行SQL,则会看到相同的结果。

+0

好的提示,谢谢! – Catalin