閱讀236 返回首頁    go 阿裏雲 go 技術社區[雲棲]


plpgsql 編程 - JSON數組循環

標簽

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

例子

例子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  

最後更新:2017-08-13 22:40:23

  上一篇:go  (新零售)商戶網格化運營 - 阿裏雲RDS PostgreSQL最佳實踐
  下一篇:go  MongoDB 哈希分片為什麼數據大小不均勻?