如何列出 plsql 脚本中使用的 user_types

How to list user_types used in a plsql script

您知道是否存在显示 plsql 脚本中使用的所有用户类型的方法(可能使用 sqldeveloper)

您可以查询 user_dependencies 视图(或 all_dependenciesdba_dependencies,如果您能看到它,并希望将您的网络撒得更广)以查看哪些对象相互依赖.

要查看引用用户定义类型的所有包、过程、函数和触发器(即存储的 PL/SQL),您可以执行以下操作:

select type, name, referenced_type, referenced_name
from user_dependencies
where type in ('PROCEDURE', 'FUNCTION', 'PACKAGE', 'PACKAGE BODY', 'TRIGGER')
and referenced_owner = user
and referenced_type = 'TYPE';

如果您对特定的 'script'(必须存储 PL/SQL,而不是匿名块)感兴趣,那么您可以对其进行过滤:

select referenced_name
from user_dependencies
where type = 'PROCEDURE' -- or whatever the object type actually is
and name = 'SOME_PROCEDURE' -- your actual object name
and referenced_owner = user
and referenced_type = 'TYPE';

在 SQL Developer 中,您还可以通过向下钻取左侧面板中的连接并单击过程(或包,或其他)名称来找到该过程,这将打开一个新选项卡默认情况下显示过程代码。在该选项卡中有一组较小的选项卡。单击 'Dependencies',您将看到与该查询为您提供的信息类似的信息。如果您要从包中查找依赖项,您可能需要查看主体的依赖项以及规范的依赖项。