加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长百科 > 正文

使用oracle解析器从XML获取First Occurred值

发布时间:2021-01-13 08:43:06 所属栏目:站长百科 来源:网络整理
导读:我不是Oracle的专家,但根据要求,我使用Oracle Parser解析Xml.对于下面列出的xml即 ?xml version="1.0" encoding="iso-8859-1" ?SearchOutputrowArray Row cellArray Cell columnId1/columnId valueArray Value valueIR000024575453/value /Value /valueArray

我希望“uganda,AZ12604823-001,IT06686,Hu Mics Metab K,2006-06-21,2006-07-27”仅在该值内选择不是“意大利和2012-02-27”.但不要不知道如何修改现有代码.

解决方法

我猜这就是你要找的 –

FOR r IN (  SELECT rownum rn,cells
           FROM xmltable('/SearchOutput/rowArray/Row' passing XMLTYPE(l_xmlclob)
                                     columns CELLS  XMLTYPE PATH './cellArray') f
        )
 LOOP
  DBMS_OUTPUT.PUT_LINE('Row: '||r.rn);      
  FOR c IN ( SELECT colid,colval
               FROM xmltable('for $i in /cellArray/Cell
                              return $i' 
                              passing r.cells
                              columns COLID NUMBER PATH 'columnId',COLVAL VARCHAR(20) PATH 'valueArray/Value[1]/value')                  
           )
  LOOP
     DBMS_OUTPUT.PUT_LINE('colid,'||c.colval);
  END LOOP;
 END LOOP;
end;

要么

FOR r IN (  SELECT rownum rn,COLVAL VARCHAR(20) PATH     './valueArray/Value[1]/value')
           )
  LOOP
     DBMS_OUTPUT.PUT_LINE('colid,'||c.colval);
  END LOOP;
 END LOOP;

输出 –

Row: 1
colid,Uganda
colid,2006-07-27

值[1]将为您提供多行元素的第一个,即第一个Value单例.

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读