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

PostgreSQL 14插入JSONB数组字段值报错,求正确插入方法

解决PostgreSQL插入JSONB[]类型字段的错误

你当前的错误源于PostgreSQL数组字面量语法与JSON数组的差异:直接将JSON数组字符串强制转换为JSONB[]时,PostgreSQL会将其识别为格式错误的数组——PostgreSQL要求数组元素用{}包裹(而非JSON的[]),且每个元素需是独立的JSONB值。

以下是两种可行的解决方案:

方案1:使用ARRAY构造函数(推荐)

通过ARRAY构造函数将多个独立的JSONB对象组合成数组,语法清晰且无需复杂转义:

INSERT INTO settings.tbl_settings 
    (sin_product_id, 
    vhr_sys_module_name, 
    vhr_grouping_name,
    vhr_settings_sys_name, 
    vhr_label,
    vhr_value, 
    arj_select_items,
    txt_remarks,
    vhr_widget_type,
    sin_settings_category, 
    int_sys_action_id, 
    fk_created_user_id, 
    dtm_created)
VALUES
    (1, 
    'XO_PURCHASE', 
    'XO Purchase',
    'NEED_XO_PURCHASE_SUPPLIER_SIDE_POSTING', 
    'Need XO Purchase Supplier Side Posting', 
    'NO_POSTING', 
    ARRAY[
        '{"strSysName":"NO_POSTING","strLabel":"No Posting"}'::JSONB,
        '{"strSysName":"POSTING","strLabel":"Posting"}'::JSONB
    ],
    '',
    'SELECTBOX',
    2, 
    0, 
    1, 
    TO_TIMESTAMP('27-08-2022 17.24.34', 'DD/MM/YYYY HH24:MI:SS')
    );

方案2:使用PostgreSQL数组字面量格式

若偏好直接用字符串字面量转换,需将JSON数组拆分为独立的JSONB元素,并用{}包裹整个数组:

INSERT INTO settings.tbl_settings 
    (sin_product_id, 
    vhr_sys_module_name, 
    vhr_grouping_name,
    vhr_settings_sys_name, 
    vhr_label,
    vhr_value, 
    arj_select_items,
    txt_remarks,
    vhr_widget_type,
    sin_settings_category, 
    int_sys_action_id, 
    fk_created_user_id, 
    dtm_created)
VALUES
    (1, 
    'XO_PURCHASE', 
    'XO Purchase',
    'NEED_XO_PURCHASE_SUPPLIER_SIDE_POSTING', 
    'Need XO Purchase Supplier Side Posting', 
    'NO_POSTING', 
    '{"{\"strSysName\":\"NO_POSTING\",\"strLabel\":\"No Posting\"}","{\"strSysName\":\"POSTING\",\"strLabel\":\"Posting\"}"}'::JSONB[],
    '',
    'SELECTBOX',
    2, 
    0, 
    1, 
    TO_TIMESTAMP('27-08-2022 17.24.34', 'DD/MM/YYYY HH24:MI:SS')
    );

补充说明

  • JSONB[]是JSONB对象的数组,而非“包含JSON数组的单个JSONB值”,必须确保数组中的每个元素都是独立的JSONB对象。
  • 方案1的ARRAY构造函数可读性更强,是更推荐的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:06:25