【发布时间】:2013-01-10 14:48:50
【问题描述】:
我在 postgres 中使用一个 plsql 函数来循环一个大型数据集,并使用来自每条记录的数据来生成一个字符串。出于某种原因,我收到了不需要的额外双引号,如下所示:
'{ ""id"": ""1""}'
它应该看起来像
'{ "id": "1"}'
另外,我注意到字符串的开头和结尾有多余的括号。我使用的代码如下:
CREATE FUNCTION gen_blocks()
RETURNS TEXT AS $$ DECLARE
output TEXT := '';
j record; BEGIN
FOR j IN SELECT '{ "id": "' || id ||'"},' LOOP
output := output || j;
END LOOP;
return output; END; $$ LANGUAGE plpgsql;
有什么想法吗?
【问题讨论】:
-
如果您使用的是 9.2,您可以使用
row_to_json(): postgresql.org/docs/9.2/static/functions-json.html -
谢谢,很高兴知道,但我现在是 9.1,暂时无法更改版本。
标签: database string postgresql plpgsql