ORACLE:如何解析json UTF8

时间:2017-09-01 17:57:27

标签: json oracle utf-8 encode

解析json时,特殊字符不考虑,我该如何解决呢?

declare 
  str       varchar2(4000) := '[{"id":"1","PRM_CODID":"R","PRM_TIPID":"REGISTRO UNICO CONTRIBUYENTE"},{"id":"2","PRM_CODID":"C","PRM_TIPID":"**CÉDULA DE IÑENTIDAD**"},{"id":"3","PRM_CODID":"P","PRM_TIPID":"PASAPORTE"}]';
  l_obj  json_list;
  l_results       json_list;
  l_tempobj       json;
   l_addr_comps    json_list;
   l_addr          json;
   ls varchar2(100);


begin
        l_obj := json_list(str);

        FOR i IN 1 .. l_obj.count
        LOOP
             l_addr := json(l_obj.get(i));
             ls := JSON_EXT.PP(l_addr, 'PRM_TIPID') ;
             Dbms_output.put_line(ls);
        END LOOP;
end;
/
  

结果
  “REGISTRO UNICO CONTRIBUYENTE”
  “ C \ u00C9 DULA DE I \ uDD1ENTIDAD”
  “PASAPORTE”
  PL / SQL程序成功完成。

2 个答案:

答案 0 :(得分:0)

根据我的理解,Oracle提供了用于JSON处理的PL / SQL DOM API。您可以查看以下链接以获取更多详细信息。

Link

答案 1 :(得分:0)

您可以使用UNISTR功能:

select unistr( replace('C\u00C9DULA DE I\u00D1ENTIDAD', '\u', '\') ) as x
from dual;

X                  
-------------------
CÉDULA DE IÑENTIDAD