具有表依赖项的 Oracle SQL 开发人员窗口视图



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

我发现了这个查询:

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

但没有像Oracle SQL Developer那样为所有所有者显示输出。

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

谢谢!

使用如下查询:

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 开发人员在后台运行的查询。如果您转到"视图"菜单并选择"日志",或按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 开发人员的同一用户身份手动运行 SQL,则会看到相同的结果。

最新更新