Oracle 中解析Json中xml数据用 PLJson

declare
  CURSOR cur_1 IS

--api_args 为clob;
     select api_args from  table where  API_METHOD='' and cost_time>30 order by id desc;   
     myarr pljson_list := pljson_list('[1, 2, "3"]');
    info    varchar2(32000);--varchar2有两个最大长度:一个是在字段类型4000;一个是在PL/SQL中变量类型32767
     info_myarr pljson_list := pljson_list('[1, 2, "3"]');
     fieldContent    varchar2(32000);
     recordInfo_myarr  pljson_list := pljson_list('[1, 2, "3"]');
     orderCode    varchar2(200);
  begin
   
       FOR rec IN cur_1 LOOP
             --先转换clob转json
             myarr := iflow.pljson_list(rec.api_args);
              info:=myarr.get(5).to_char();
             --去除开头的"
             info:=TRIM(leading '"' FROM info) ;
              --去除结尾的"
             info:=TRIM(both  '"' FROM info) ;
             --去除字符串中的\r\n
             info:= replace(info,'\r\n','');
              --去除字符串中的\
             info:= replace(info,'\','');
               --   dbms_output.put_line(info);
             --varchar2转xml返回json的list(一层一层的转)
              info_myarr:=iflow.pljson_ml.xmlstr2json(info);
             --获取json的list  获取【recordInfo】
              fieldContent:=info_myarr.get(2).to_char();
              myarr := iflow.pljson_list(fieldContent);
              --获取json的list  获取【fieldInfo】
               info:=myarr.get(2).to_char();
               myarr := iflow.pljson_list(info);
               --获取json的list  获取【fieldContent】
                info:=myarr.get(4).to_char();
                myarr := iflow.pljson_list(info);
                --获取json的list  获取【最终的值】
                  orderCode:=myarr.get(2).to_char();
                  orderCode:=TRIM(leading '"' FROM orderCode) ;
                  orderCode:=TRIM(both  '"' FROM orderCode) ;
             END LOOP;
  end ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值