5

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

请帮忙....

4

2 回答 2

9

如果您使用的是 psql (命令行界面),则可以\df+按照 tobixen 已经说明的方式使用(并且在手册中有明确记录)。

如果您需要在 SQL 查询中执行此操作,请查看系统信息功能。你正在寻找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 参数)。

于 2012-07-03T07:21:08.907 回答
3

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

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

于 2012-07-03T07:14:00.520 回答