psql如何使用\df命令查询不含dblink模式的自定义函数
正确操作方法
方案1:使用psql原生\df命令过滤
你之前的写法错误是因为正则没有匹配任意前后字符,或者通配符语法使用不规范,以下两种写法都可生效:
- 通配符模式(psql内置匹配规则)
\df ! *dblink*
如果需要不区分大小写过滤,使用:
\df !i *dblink*
- POSIX正则模式
\df !~ .*dblink.*
不区分大小写的正则匹配写法:
\df !~* .*dblink.*
方案2:查询系统表(更灵活)
如果需要更复杂的过滤条件(比如仅查看当前用户创建的自定义函数、指定schema下的函数),可以直接查询pg_proc系统表:
SELECT proname AS 函数名称, pg_get_function_result(oid) AS 返回值类型, pg_get_function_arguments(oid) AS 参数列表 FROM pg_proc WHERE pronamespace = 'public'::regnamespace -- 限定查询public schema AND proname NOT LIKE '%dblink%' -- 排除所有名称含dblink的函数 AND proowner = current_user::regrole; -- 可选:仅查询当前登录用户创建的函数
内容的提问来源于stack exchange,提问作者jian
相关产品推荐
相关产品推荐

