我希望能够连接到 PostgreSQL 数据库并找到特定模式的所有函数。
我的想法是我可以对 pg_catalog 或 information_schema 进行一些查询并获取所有函数的列表,但我无法弄清楚名称和参数的存储位置。我正在寻找一个查询,它将为我提供函数名称和它采用的参数类型(以及它采用的顺序)。
有没有办法做到这一点?
经过一番搜索,我能够找到 information_schema.routines 桌子和 information_schema.parameters 桌子。使用这些,可以为此目的构建查询。LEFT JOIN,而不是 JOIN,是检索没有参数的函数所必需的。
information_schema.routines
information_schema.parameters
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;