如何选择函数定义作为查询?

时间:2019-02-06 21:45:39

标签: sql oracle function oracle12c function-definition

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

我可以针对如下视图执行此操作:

select * from all_views

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

能做到吗?

1 个答案:

答案 0 :(得分:1)

要列出所有功能,可以查询the ALL_OBJECTS dictionary view

SELECT * FROM all_objects WHERE object_type = 'FUNCTION';

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

然后,您可以从视图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';