You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL函数调用报错:返回record类型与预期uuid类型不匹配

错误原因

报错核心是RETURN QUERY后的查询语句写法错误:
你在w.id和w.my_column外层额外加了圆括号,PostgreSQL会将括号包裹的多字段解析为单个匿名record类型的单列,而非两个独立列。最终查询只返回1个record类型列,和函数定义的返回结构(第1列为uuid类型、第2列为text类型)完全不匹配,因此抛出类型错误。

补充:PostgreSQL中(col1, col2)属于行构造器语法,作用是将多个字段组合为单个复合/记录类型值,和直接书写多列返回的结构有本质区别。

修复方法

去掉SELECT子句中列外层的多余括号即可,修正后的函数定义如下:

CREATE OR REPLACE FUNCTION public.export_wizard()
  RETURNS TABLE(id uuid, my_column text)
  LANGUAGE plpgsql
AS $function$
  BEGIN
    RETURN QUERY SELECT w.id, w.my_column FROM wizard w;
  END;
$function$
;
验证步骤
  • 执行上述修正后的SQL完成函数重定义
  • 运行调用语句select * from export_wizard();,即可正常返回结构匹配的结果集,第一列为uuid类型的id,第二列为text类型的my_column。

内容的提问来源于stack exchange,提问作者rafineria888wp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 04:33:25