我在转换jsonb值时遇到问题。喜欢引导的人。
我们试图实现的是,一些数据以字符串的形式出现,我们希望将其转换为数字。
考虑以下update语句:
update customer
set traits = jsonb_set(traits, '{arr}',traits->'arr'::text::integer)
where jsonb_typeof(traits->'arr') = 'string'
and traits->'arr' is not null
我们当前得到以下错误:[22P02] ERROR: invalid input syntax for type integer: "arr"
我试过各种各样的咒语,但就是想不通。
有人能给我们一条出路吗?!
工作解决方案看起来像这样:
update customer
set traits = jsonb_set(traits, '{arr}',(traits->>'arr')::integer::text::jsonb)
where jsonb_typeof(traits->'arr') = 'string'
and traits->'arr' is not null
用三重石膏闻起来有点不对劲
2条答案
按热度按时间e4eetjau1#
问题是你的表情
被评估为
它试图将
'arr'
转换为整数(由于明显的原因而失败,并显示您提到的错误消息)。相反,你想nxagd54h2#
从Postgres 14开始,你可以: