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

PostgreSQL中json箭头操作符->、->>无法使用报错如何解决

报错原因
  • 核心原因是你用于提取JSON键的candidate_owner_json列的字段类型不是json/jsonb,而是text类型。PostgreSQL的->、->>操作符仅支持左操作数为json/jsonb类型,所以当你对text类型字段使用JSON操作符时,就会触发类型不匹配的报错。
解决方案
  • 临时查询使用:你可以在查询时手动将text类型字段强转为json/jsonb类型,示例语句如下:
-- 提取json类型的ownerid值
SELECT candidate_owner_json::json -> 'ownerid' FROM candidate;
-- 提取text类型的ownerid值
SELECT candidate_owner_json::json ->> 'ownerid' FROM candidate;
  • 长期使用建议修改列类型:如果该列存储的都是合法的JSON格式数据,建议直接修改字段类型为jsonb(性能优于json类型,支持索引),一劳永逸避免后续重复强转:
ALTER TABLE candidate 
ALTER COLUMN candidate_owner_json TYPE jsonb 
USING candidate_owner_json::jsonb;
  • 注意:如果执行上述修改列类型的语句报错,说明该列存在不符合JSON格式的非法数据,你需要先清理所有非法数据后再执行类型修改操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:15:03