在postgresql中查找现有函数脚本的命令是什么?

时间:2012-07-03 06:20:38

标签: postgresql

由于我们使用sp_helptext [procedure name]来获取Sqlserver中的SP脚本,我需要一个可以用来从postgresql中检索函数脚本的命令。

请帮忙......

2 个答案:

答案 0 :(得分:7)

如果你正在使用psql(命令行界面),你可以使用\df+,因为tobixen已经说明了(手册中有明确记载的内容)。

如果您需要在SQL查询中执行此操作,请查看system information functions。您正在寻找pg_get_functiondef()

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

如果您正在处理具有不同参数数量的重载函数,则需要在名称中包含参数签名:

select pg_get_functiondef('public.foo(int)'::regprocedure);
select pg_get_functiondef('public.foo(int,int)'::regprocedure);

将检索函数foo的重载版本(一个版本带有一个int参数,另一个版本带有两个int参数)。

答案 1 :(得分:3)

在psql命令行,它是\df+ foo,不是吗?

最终,select prosrc from pg_proc where proname='foo';