当我向postgresql表中插入数据时如insert into app_listing(type, name, app_info_list) values(1, 'a', '[{"appName":"123","packageName":"com.1.1"},{"appName":"abc","packageName":"com.a.b"}]'::json[]),却出现报错DETAIL: "["必须引入显式指定的数组规模。请帮我解决这个问题
时间: 2023-07-08 11:42:46 浏览: 104
这个报错是因为你在插入数据时,使用的是一个未指定数组长度的 JSON 数组。需要在 JSON 数组的方括号前面一个数字,指定数组的长度。
例如,你可以这样修改你的 SQL 语句:
```
insert into app_listing(type, name, app_info_list) values(1, 'a', '[2,{"appName":"123","packageName":"com.1.1"},{"appName":"abc","packageName":"com.a.b"}]'::json[])
```
在这个修改后的语句中,我们在 JSON 数组的方括号前面添加了数字 2,表示这个数组的长度为 2。这样就可以成功插入数据了。
另外,如果你需要在插入 JSON 数组时不指定数组长度,也可以使用 `jsonb` 类型,它可以自动识别数组长度,不需要手动指定。例如:
```
insert into app_listing(type, name, app_info_list) values(1, 'a', '[{"appName":"123","packageName":"com.1.1"},{"appName":"abc","packageName":"com.a.b"}]'::jsonb)
```
阅读全文