撰写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 - >>未知
引发通知显示数据类型为text
。
注意:数据类型文本
我尝试将_getlocales()
返回类型更改为jsonb
,但没有更改:
CREATE OR REPLACE FUNCTION nav._getlocales()
RETURNS jsonb AS
$BODY$DECLARE
_l18nJson jsonb;
...
为什么会这样?
答案 0 :(得分:1)
variable
数据类型声明text
。所以,我改变了:
$BODY$DECLARE
variable text;
致:
$BODY$DECLARE
variable json;
问题解决了。