栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用PL / SQL将JSON解析为Oracle表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用PL / SQL将JSON解析为Oracle表

我使用PL /JSON库。具体来说,JSON_EXT包用于解析它。

以下受Oracle Community Answer启发的脚本对我有用

DECLARE  l_param_list     VARCHAr2(512);  l_http_request   UTL_HTTP.req;  l_http_response  UTL_HTTP.resp;  l_response_text  VARCHAr2(32767);l_list json_list;A_idVARCHAr2(200);UserId         VARCHAr2(100);UserName       VARCHAr2(100);OutletCode     VARCHAr2(100);OutletName     VARCHAr2(100);MobileNumber   VARCHAr2(100);PhoneNumber    VARCHAr2(100);Address        VARCHAr2(100);CityVARCHAr2(100);State          VARCHAr2(100);Postpre       VARCHAr2(100);Email          VARCHAr2(100);UpdateCount    VARCHAr2(100);loginCount     VARCHAr2(100);ReferencePhoto VARCHAr2(100);Updates        VARCHAr2(100);AccountLocked  VARCHAr2(100);Oracle_Flag    VARCHAr2(100);acl VARCHAr2(100);BEGIN  -- service's input parameters  -- preparing Request...  l_http_request := UTL_HTTP.begin_request('https://api.appery.io/rest/1/db/collections/Outlet_Details?where=%7B%22Oracle_Flag%22%3A%22Y%22%7D'         , 'GET'         , 'HTTP/1.1');  -- ...set header's attributes  UTL_HTTP.set_header(l_http_request, 'X-Appery-Database-Id', '53f2dac5e4b02cca64021dbe');  --UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_param_list));  -- ...set input parameters -- UTL_HTTP.write_text(l_http_request, l_param_list);  -- get Response and obtain received value  l_http_response := UTL_HTTP.get_response(l_http_request);  UTL_HTTP.read_text(l_http_response, l_response_text);  DBMS_OUTPUT.put_line(l_response_text);  l_list := json_list(l_response_text);FOR i IN 1..l_list.countLOOP  A_id:= json_ext.get_string(json(l_list.get(i)),'_id');  UserId         := json_ext.get_string(json(l_list.get(i)),'UserId');  UserName       := json_ext.get_string(json(l_list.get(i)),'UserName');  OutletCode     := json_ext.get_string(json(l_list.get(i)),'OutletCode');  OutletName     := json_ext.get_string(json(l_list.get(i)),'OutletName');  MobileNumber   := json_ext.get_string(json(l_list.get(i)),'MobileNumber');  PhoneNumber    := json_ext.get_string(json(l_list.get(i)),'PhoneNumber');  Address        := json_ext.get_string(json(l_list.get(i)),'Address');  City:= json_ext.get_string(json(l_list.get(i)),'City');  State          := json_ext.get_string(json(l_list.get(i)),'State');  Postpre       := json_ext.get_string(json(l_list.get(i)),'Postpre');  Email          := json_ext.get_string(json(l_list.get(i)),'Email');  UpdateCount    := json_ext.get_string(json(l_list.get(i)),'UpdateCount');  loginCount     := json_ext.get_string(json(l_list.get(i)),'loginCount');  ReferencePhoto := json_ext.get_string(json(l_list.get(i)),'ReferencePhoto');  Updates        := json_ext.get_string(json(l_list.get(i)),'Updates');  AccountLocked  := json_ext.get_string(json(l_list.get(i)),'AccountLocked');  Oracle_Flag    := json_ext.get_string(json(l_list.get(i)),'Oracle_Flag');  acl := json_ext.get_string(json(l_list.get(i)),'acl');insert .....

请注意, json_ext.get_string
仅限制最大限制为32767的VARCHAR2。为了对更大的json_list和json_values(>32KB)使用相同的包,请在此处检查。

如果您拥有APEX5.0及更高版本,则可以通过APEX_JSON软件包获得更好的选择和更好的性能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号