我想在触发器中进行修正,但是这个问题有200-300个例子 - 手动操作太多了。在Postgresql中是否有任何包含完整数据库代码的表,我可以在其中找到所有定义并同时更正它们?
这可能是初学者的问题(我知道在Oracle中有类似的表,但我是Postgresql的新手),但我似乎无法在网络上或我自己都找不到它。
答案 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
。