暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 将json对象合并到一个文档中

ASKTOM 2019-04-29
450

问题描述

我需要将一些现有的json对象组合成一个新的json对象。使用语法:

json3 := json_object('json1' value json1, 'json2' value json2);


现有的json对象被包裹在一组额外的双引号中,并且嵌入的双引号被转义。没有重建json对象 (如在第五个输出),我怎么能做到这一点?

Thanx,D

专家解答

使用格式json子句。或者如果你在18c上,你可以使用treat ( ... as json ):

declare  
    json1 varchar2(200); 
    json2 varchar2(200); 
    json3 varchar2(200);  
     
begin  
    json1 := json_object('1' value 1, '2' value 2, '3' value 3);  
    DBMS_OUTPUT.put_line (json1);  
     
    json2 := json_object('state' value 'AZ', 'car' value 'P1', 'pet' value 'Dog');  
    DBMS_OUTPUT.put_line (json2);  
     
    select json_object( 
      'json1' value json1 format json,  
      'json2' value json2 format json
    ) 
    into json3 
    from dual;  
    DBMS_OUTPUT.put_line (json3);  
     
    select json_object ( 
      'json1' value treat ( json1 as json ),  
      'json2' value treat ( json2 as json )
    ) 
    into json3 
    from dual;  
    DBMS_OUTPUT.put_line (json3);  
     
end; 
/

{"1":1,"2":2,"3":3}
{"state":"AZ","car":"P1","pet":"Dog"}
{"json1":{"1":1,"2":2,"3":3},"json2":{"state":"AZ","car":"P1","pet":"Dog"}}
{"json1":{"1":1,"2":2,"3":3},"json2":{"state":"AZ","car":"P1","pet":"Dog"}}

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论