如何在postgre SQL中列出用户定义的函数和过程

时间:2016-05-12 07:01:14

标签: postgresql list function procedures

试图找出Postgre SQL上存储的函数和过程。我找到了一些解决方案,其中包括"加入"已经用过。我正在寻找一个最佳的解决方案/命令。

3 个答案:

答案 0 :(得分:12)

如果有命令我真的不知道。 我还使用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%'

希望有所帮助。

答案 1 :(得分:0)

您可以使用meta命令获取功能

\df

答案 2 :(得分:-1)

您可以使用列出所有功能

show functions