暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

plpgsql 编程 - JSON数组循环

digoal 2017-08-02
213

作者

digoal

日期

2017-08-02

标签

PostgreSQL , plpgsql , json , jsonb , array , 数组


背景

PostgreSQL的plpgsql编程语言和Oracle PL/SQL编程语言类似,是功能很强大的数据库编程语言。

JSON是PG支持的非结构化类型,那么如何在PLPGSQL中LOOP JSON数组呢?

https://www.postgresql.org/docs/9.6/static/plpgsql-control-structures.html#PLPGSQL-FOREACH-ARRAY

例子

例子1

postgres=# do language plpgsql $$ declare rec jsonb; begin for rec in select jsonb_array_elements('[{"lat":30.27699965,"lng":120.02319424},{"lat":30.27700545,"lng":120.02321551}]') loop raise notice '%', rec; end loop; end; $$; NOTICE: {"lat": 30.27699965, "lng": 120.02319424} NOTICE: {"lat": 30.27700545, "lng": 120.02321551} DO

例子2

DO $BODY$ DECLARE omgjson json := '[{ "type": false }, { "type": "photo" }, {"type": "comment" }]'; i json; BEGIN FOR i IN SELECT * FROM json_array_elements(omgjson) LOOP RAISE NOTICE 'output from space %', i->>'type'; END LOOP; END; $BODY$ language plpgsql

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论