查询 XML 数据的子选项(返回列表)

一、场景

将指定的数据格式转换为列表,并与其他表关联查询

数据格式:{"JiJClass":"1","Power":"1","DetailPara":"1","ChangeRptSrc":"1","SpreadCertRptSrc":"1"}

二、示例

--创建测试表
CREATE TABLE test1(value1 varchar2)
--添加数据
insert into test1(value1)values('{"JiJClass":"1","Power":"1","DetailPara":"1","ChangeRptSrc":"1","SpreadCertRptSrc":"1"}');
commit;

declare  _xml_VALUE varchar2;
begin
 select
	  '<note><k>'+ 
	  replace(
	   replace(
		 replace(
		   replace(
		      replace(value1, '{', '')
		       , '}', '')
		          , '"', ''), ',',
		          '</val></note><note><k>'), ':', 
		                                  '</k><val>')
		+ '</val></note>' as vxml
		  into 
	   _xml_VALUE
   from test1;

  with tmp as
     ( select * 
        from XMLTABLE 
             ( 
             '/note' 
             PASSING _xml_VALUE
             COLUMNS "key" VARCHAR(120) PATH 'k',
                     "val" VARCHAR(120) PATH 'val' 
             ) 
             xt
     )
     select *from tmp;
end;

三、最终结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的炸串拌饼店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值