具有Postgresql中函数定义的系统表

时间:2014-12-03 14:40:39

标签: postgresql

我想在触发器中进行修正,但是这个问题有200-300个例子 - 手动操作太多了。在Postgresql中是否有任何包含完整数据库代码的表,我可以在其中找到所有定义并同时更正它们?

这可能是初学者的问题(我知道在Oracle中有类似的表,但我是Postgresql的新手),但我似乎无法在网络上或我自己都找不到它。

1 个答案:

答案 0 :(得分:0)

包含postgres中所有过程定义的表格为pg_catalog.pg_proc

包含源代码的列为prosrc

您可以执行以下操作:

select proname, prosrc from pg_proc where proname like '%doc%';

假设您有一些名为 doc 的函数。

存储过程pg_catalog.pg_get_functiondef将返回特定函数的源代码。你可以这样做:

select pg_get_functiondef(oid) from pg_proc where proname='myfunction_name';

不幸的是,pg_get_functiondef在内部使用了聚合函数 - 因此您无法在返回多个函数的查询中调用pg_get_functiondef