我有一系列循环,从一个数据表中以奇怪的伪 JSON 格式组合一个 clob。
我的问题是每个循环都需要用相关字符结束该部分,但我无法确定如何识别最后一条记录。
到目前为止,我已经尝试了:
for y in (select distinct ident from table(an_object))
loop
pseudojson := pseudojson || '{';
the_row := y.ident;
for z in (select * from table(an_object) where ident = the_row)
loop
pseudojson := pseudojson || z.the_key ||': "' || z.the_value ||'"';
-- (1)
end loop;
pseudojson := pseudojson || '}';
-- (2)
end loop;
pseudojson := pseudojson || '}';
an_object
包含未旋转的数据,通过 ident
分组成为以前的行。对于逻辑上说,我试图塞入以下内容:
(1)
if not z.last
then
pseudojson := pseudojson || ',';
end if;
并且(2)
if not y.last
then
pseudojson := pseudojson || ',';
end if;
但是这些运算符在for循环中无法使用。有谁能给我指点一下方向吗?