小编典典

如何获取存储在 PostgreSQL 中特定模式的数据库中的所有函数的列表?

all

我希望能够连接到 PostgreSQL 数据库并找到特定模式的所有函数。

我的想法是我可以对 pg_catalog 或 information_schema
进行一些查询并获取所有函数的列表,但我无法弄清楚名称和参数的存储位置。我正在寻找一个查询,它将为我提供函数名称和它采用的参数类型(以及它采用的顺序)。

有没有办法做到这一点?


阅读 252

收藏
2022-08-15

共1个答案

小编典典

经过一番搜索,我能够找到 information_schema.routines 桌子和
information_schema.parameters 桌子。使用这些,可以为此目的构建查询。LEFT JOIN,而不是
JOIN,是检索没有参数的函数所必需的。

SELECT routines.routine_name, parameters.data_type, parameters.ordinal_position
FROM information_schema.routines
    LEFT JOIN information_schema.parameters ON routines.specific_name=parameters.specific_name
WHERE routines.specific_schema='my_specified_schema_name'
ORDER BY routines.routine_name, parameters.ordinal_position;
2022-08-15