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

如何正确传递jsonb[]参数至PostgreSQL SQL函数?

修复PostgreSQL函数调用的数组类型错误

错误原因

你遇到的报错是因为jsonb数组的写法不符合PostgreSQL语法:

  • 不能把::jsonb类型转换符放在数组字面量的元素内部,PostgreSQL无法解析这种格式的数组元素
  • 数组内的JSON字符串引号转义处理不当

正确的调用方式

以下两种写法都可以解决问题:

方法1:使用数组构造器(推荐,可读性更高)

用ARRAY[]构造数组,每个元素单独转换为jsonb类型,同时确保uuid参数格式正确:

SELECT create_user_events(
    'db74c66d-0000-0000-0000-000000000000'::uuid, -- 补充完整的UUID格式
    ARRAY['scr_home'],
    ARRAY[1],
    ARRAY['{"key":"value"}'::jsonb],
    ARRAY[123]
);

方法2:给数组字面量整体加类型转换

直接写数组字面量,最后统一转换为jsonb[],注意JSON字符串内的双引号要转义:

SELECT create_user_events(
    'db74c66d-0000-0000-0000-000000000000'::uuid,
    '{scr_home}',
    '{1}'::int[],
    '{"{\"key\":\"value\"}"}'::jsonb[],
    '{123}'::int[]
);

额外注意

  • 你的第一个参数_auid是uuid类型,'db74c66d'是不完整的UUID(标准UUID是8-4-4-4-12格式的字符串),真实环境需要传入完整的UUID值,否则会触发invalid input syntax for type uuid错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:46:28