Postgres:“无法在对象上调用json_populate_recordset”错误

我有一个表,其中的一列包含解压的json(“ actionDetails”),有时每行有多个json。由于某些奇怪的原因,查询

    SELECT "idVisit" AS visit_id,t.* FROM dl.live_last_visits_details_pvk,json_populate_recordset(null::json_type,"actionDetails" :: JSON) as t

给出我想要的确切结果-直到我跳到结果末尾,当它关闭表格并给我[22023] ERROR: cannot call json_populate_recordset on an object.

类似地,如果我尝试将此查询保存到表中,则会遇到相同的错误。

DROP TABLE IF EXISTS temp;
CREATE TEMP TABLE temp AS (
    SELECT "idVisit" AS visit_id,"actionDetails" :: JSON) as t
);
SELECT * FROM temp;

有人知道是什么原因造成的(也许不是json的一些奇怪的行值?),我该如何解决呢?不知道如何搜索可能隐藏在该列值中的其他类型的对象,它是一个很大的表,所以我不能只进行筛选。我正在使用的数据有很多行并且经常更改,因此我需要编写可以处理这种奇怪情况的代码。有什么想法吗?

感谢您的时间!

sxlyya 回答:Postgres:“无法在对象上调用json_populate_recordset”错误

我遇到了同样的错误。就我而言,当我的live_last_visits_details_pvk版本中有2行或更多行时,一切正常。当我只有1行时,PostgreSQL会生气并抛出此错误。我还没有适合您的聪明解决方案,但希望目前能对您有所帮助。

本文链接:https://www.f2er.com/3035812.html

大家都在问