PostgreSQL 不能打电话 json_object_keys 在 scalar
我有一张桌子 PostgreSQL 用专栏 JSON, 而且我正在尝试获取此列中所有不同键的列表。 为此,我创建了一个请求:
在哪里
-tablik,A。
-柱子 JSON. 它正确地运行了一小组数据,它将列出存在的所有密钥
, 没有重复他们。 但是,在添加更大量的数据后,它不再有效,发出错误:
我不太明白为什么会发生这种情况。 刚刚将某个行限制在一起,我发现了导致错误的行。 在这一行
- 这是
. 但是,挑战
呼叫时不会导致此错误
原因,一。
在这条线上只是
. 我真的不知道在哪里继续。
因此,我认为我的问题是它可能是这个的原因,我怎样才能绕过它或阻止它?
在职的 PostgreSQL 9.3.9
编辑:好的,我提前写了一下。 我发现
在一个问题中不是
, 和
, 从简单的字符串中选择了什么。 它
真的
造成错误 scalar, 所以现在我只需要找到一种选择线条的方法
不是
.
SELECT DISTINCT json_object_keys/j/ FROM t;
在哪里
t
-tablik,A。
j
-柱子 JSON. 它正确地运行了一小组数据,它将列出存在的所有密钥
j
, 没有重复他们。 但是,在添加更大量的数据后,它不再有效,发出错误:
ERROR: cannot call json_object_keys on a scalar
我不太明白为什么会发生这种情况。 刚刚将某个行限制在一起,我发现了导致错误的行。 在这一行
j
- 这是
null
. 但是,挑战
SELECT json_object_keys/null/;
呼叫时不会导致此错误
SELECT json_object_keys/j/ FROM t WHERE id=12;
原因,一。
j
在这条线上只是
null
. 我真的不知道在哪里继续。
因此,我认为我的问题是它可能是这个的原因,我怎样才能绕过它或阻止它?
在职的 PostgreSQL 9.3.9
编辑:好的,我提前写了一下。 我发现
j
在一个问题中不是
null
, 和
'null'::json
, 从简单的字符串中选择了什么。 它
真的
造成错误 scalar, 所以现在我只需要找到一种选择线条的方法
j
不是
'null'::json
.
没有找到相关结果
已邀请:
1 个回复
三叔
赞同来自:
有这个要求:
但是,显然没有运营商 json <> json, 因此,我不得不把它带到文本并比较。
有用! 但是,我不是专家 Postgres, 因此,这可能不是制作此检查的最有效方法。