由于我们使用sp_helptext [procedure name]来获取Sqlserver中的SP脚本,我需要一个可以用来从postgresql中检索函数脚本的命令。
请帮忙......
答案 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';