为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:win10
【CPU】:
【问题描述】*:
**xml 数据 **
<note><k>JiJClass</k><val>1</val></note><note><k>TXTTechPara</k><val>1</val></note><note><k>InspectRptSrc</k><val>1</val></note><note><k>SpreadCertRptSrc</k><val>1</val></note><note><k>ParaProveFileSrc</k><val>1</val></note><note><k>DetailPara</k><val>1</val></note><note><k>PlateSrc</k><val>1</val></note><note><k>Power</k><val>1</val></note><note><k>ProductPicSrc</k><val>1</val></note><note><k>SpreadCertSrc</k><val>1</val></note><note><k>FQFHZZQDBGInfo</k><val>1</val></note><note><k>ReliableGInfo</k><val>1</val></note>
最终要的效果
现在的情况
--创建测试表
CREATE TABLE test1(value1 varchar2)
--添加数据
insert into test1(value1)values('<note><k>JiJClass</k><val>1</val></note><note><k>TXTTechPara</k><val>1</val></note><note><k>InspectRptSrc</k><val>1</val></note><note><k>SpreadCertRptSrc</k><val>1</val></note><note><k>ParaProveFileSrc</k><val>1</val></note><note><k>DetailPara</k><val>1</val></note><note><k>PlateSrc</k><val>1</val></note><note><k>Power</k><val>1</val></note><note><k>ProductPicSrc</k><val>1</val></note><note><k>SpreadCertSrc</k><val>1</val></note><note><k>FQFHZZQDBGInfo</k><val>1</val></note><note><k>ReliableGInfo</k><val>1</val></note>');
commit;
DECLARE
TYPE Info_t IS TABLE OF varchar2;
info Info_t;
COLUMN_VALUE1 varchar2;
BEGIN
select CONVERT(varchar2, XMLAGG(xmltype(value1))) as x BULK COLLECT INTO info from test1;
select * from table(info);
select value1 into COLUMN_VALUE1 from test1;
SELECT XMLQUERY((select value1 from test1), '/note');
SELECT * FROM TABLE(XMLSEQUENCE(EXTRACT(COLUMN_VALUE1,'/note')));
END;
社区的各位大佬,帮帮忙啊
很简单。没必要PLSQL过程代码
SELECT xt.* FROM test1 t, XMLTABLE('/note' PASSING t.value1 COLUMNS "key" VARCHAR(120) PATH 'k', "val" VARCHAR(120) PATH 'val') xt;