在PostgreSQL中显示数据库中的用户定义函数和过程

问题描述 投票:0回答:3

尝试找出 PostgreSQL 上的存储函数和过程。我找到了一些使用“join”的解决方案。我正在寻找最佳解决方案/命令。

database postgresql function procedure user-defined
3个回答
20
投票

如果有一个命令我真的不知道。 例如,我还使用 pg_catalog.pg_proc 和 pg_catalog.pg_namespace 之间的联接解决方案来列出一个模式中的所有函数。

您可以使用连接来获得您需要的东西。 例如,此查询将为您提供更改架构上所有函数的所有者的命令:

SELECT 'ALTER FUNCTION '
            || quote_ident(n.nspname) || '.' 
            || quote_ident(p.proname) || '(' 
            || pg_catalog.pg_get_function_identity_arguments(p.oid)
            || ') OWNER TO owner_usr;' AS command
FROM   pg_catalog.pg_proc p
JOIN   pg_catalog.pg_namespace n ON n.oid = p.pronamespace 
WHERE  n.nspname = 'your_schema';

这个应该列出您所有的用户定义函数:

SELECT   quote_ident(n.nspname) as schema , quote_ident(p.proname) as function 
FROM   pg_catalog.pg_proc p
JOIN   pg_catalog.pg_namespace n ON n.oid = p.pronamespace 
WHERE  n.nspname not like 'pg%'

希望有帮助。


19
投票

您可以使用meta命令获取函数

\df

0
投票

这可以显示数据库中用户定义的函数和过程:

\df

可以详细显示数据库中用户自定义的函数和过程:

\df+
© www.soinside.com 2019 - 2024. All rights reserved.