【发布时间】:2016-02-25 07:06:04
【问题描述】:
正如here 所写,json_object_agg(name, value) 返回类型为json。同时,如果我从存储过程中返回 json_object_agg() 返回的值:
CREATE OR REPLACE FUNCTION _getlocales()
RETURNS json AS
$BODY$DECLARE
var json;
BEGIN
select into var json_object_agg("key", "values") from table;
RETURN var;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
并在另一个函数中调用它:
variable = _getlocales();
RAISE NOTICE 'DATA TYPE %', pg_typeof(variable);
SELECT variable->>'property'
我无法获取JSON 对象字段。我遇到了:
错误:运算符不存在:文本 ->> 未知
并引发通知显示数据类型为text。
注意:数据类型文本
我尝试将_getlocales() 返回类型更改为jsonb,但没有任何改变:
CREATE OR REPLACE FUNCTION nav._getlocales()
RETURNS jsonb AS
$BODY$DECLARE
_l18nJson jsonb;
...
为什么会这样?
【问题讨论】:
-
请显示更多有问题的代码。至关重要的是,我们需要了解“变量”的定义
-
哦,在你的帮助下我已经弄明白了。它被声明为文本。无法理解我是如何错过它的,谢谢!您可以将其发布为答案,我很乐意接受!
标签: json postgresql postgresql-json