具有 table 依赖项的 Oracle SQL 开发人员 window 视图

Oracle SQL Developer window view with table dependencies

在 Oracle SQL 开发人员 GUI 中,我打开了一个 table 并出现了一个带有属性的 window。这是一个名为 Dependencies.

的 window 选项卡

我找到了这个查询:

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

但没有为像 Oracle SQL 开发人员这样的所有所有者显示输出。

如何通过对所有所有者的查询 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) 你会得到一个固定的 window,默认情况下标题为 "Messages - Log"。底部有两个选项卡,其中 "Messages" 已选中。如果您单击 "Statements",您可以看到使用的语句和绑定变量。

在这种情况下,当您刷新依赖项选项卡时会发出三个语句,其中两个是我上面显示的内容的变体 - 它们会得到更多的列,并检查双向的依赖项:

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 table 所需权限的用户身份连接,则 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

它只会显示关于 objects 您拥有 select/execute 权限的信息。在我上面显示的第一个查询中,您只需将 dba_dependencies 更改为 all_dependencies 即可查看等效(可见)结果。

如果您 运行 SQL 与您连接到 SQL 开发人员的同一用户手动 SQL,您将看到相同的结果。