小编Igo*_*gor的帖子

如何在PL/SQL中通过XML进行多个循环

我的XML看起来像这样

<data>
   <row>
       <id>1</id>
       <name>John</name>
       <name>Jack</name>
   </row>
   <row>
       <id>2</id>
       <name>Scott</name>
       <name>Chuck</name>
       <name>Kim</name>
   </row>
</data>
Run Code Online (Sandbox Code Playgroud)

我想要输出:

->1
-->John
-->Jack
->2
-->Scott
-->Chuck
-->Kim
Run Code Online (Sandbox Code Playgroud)

我当前的代码如下所示:

    DECLARE
       X XMLTYPE := XMLTYPE('<?xml version="1.0" ?> 
    <data>
       <row>
           <id>1</id>
           <name>John</name>
           <name>Jack</name>
       </row>
       <row>
           <id>2</id>
           <name>Scott</name>
           <name>Chuck</name>
           <name>Kim</name>
       </row>
    </data>');
    BEGIN
       FOR R IN (SELECT EXTRACTVALUE(VALUE(P), '/row/id/text()') AS NAME

                   FROM TABLE(XMLSEQUENCE(EXTRACT(X, '//data/row'))) P)
       LOOP
          DBMS_OUTPUT.PUT_LINE('-->' || R.NAME);
       END LOOP;
    END;
Run Code Online (Sandbox Code Playgroud)

我需要在一行内多一个循环来遍历名称标签,但我不知道该怎么做.

一点帮助将不胜感激.

xml sql oracle plsql

4
推荐指数
1
解决办法
4447
查看次数

标签 统计

oracle ×1

plsql ×1

sql ×1

xml ×1