正如这里所写,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;
...
为什么会发生这种情况?