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 ;