首页 > 解决方案 > 如何选择函数定义作为查询?

问题描述

我想选择模式中所有函数的 PL/SQL 定义作为查询。原因是我想查询我的所有函数以获取特定文本。

对于这样的视图,我可以这样做:

select * from all_views

但是,我不确定如何使用函数来做到这一点。

可以做到吗?

标签: sqloraclefunctionoracle12cfunction-definition

解决方案


要列出所有功能,您可以查询字典ALL_OBJECTS视图

SELECT * FROM all_objects WHERE object_type = 'FUNCTION';

这将为您提供当前用户可用的所有功能(DBA_OBJECTS列出数据库中的所有对象)。

然后,您可以从 view 检索函数的文本源ALL_SOURCE

SELECT o.object_name, s.line, s.text 
FROM all_objects o
INNER JOIN all_source s 
    ON s.name = o.object_name AND s.type = o.object_type AND s.owner = o.owner
WHERE o.object_type = 'FUNCTION';

推荐阅读