在Oracle中将XML转换为表

时间:2015-07-28 07:32:47

标签: sql xml oracle extract

我有以下格式的XML,存储在oracle数据库中的XMLType列中

<a>
<c>1</c>
<c>2</c>
</a>

我需要将此格式转换为

c
1
2

知道如何使用SQL做到这一点吗?

3 个答案:

答案 0 :(得分:1)

with data as
(select '<a><c>1</c><c>2</c></a>' xmlval
 from dual)
( select c
  from data d, 
       xmltable('/a/*' passing xmltype(d.xmlval) 
        columns
    c varchar2(254) path '/c'   
))  

答案 1 :(得分:0)

这个url有答案。

例如用户daggett这样做:

select *  
FROM XMLTABLE('/person/row'  
         PASSING   
            xmltype('
                <person>
                   <row>
                       <name>Tom</name>
                       <Address>
                           <State>California</State>
                           <City>Los angeles</City>
                       </Address>
                   </row>
                   <row>
                       <name>Jim</name>
                       <Address>
                           <State>California</State>
                           <City>Los angeles</City>
                       </Address>
                   </row>
                </person>
            ')
         COLUMNS  
            --describe columns and path to them:  
            name  varchar2(20)    PATH './name',  
            state varchar2(20)    PATH './Address/State',  
            city  varchar2(20)    PATH './Address/City'
     ) xmlt  
;  

答案 2 :(得分:0)

谢谢,可以了。

皮尔斯勒俱乐部;

    select *  
    FROM XMLTABLE('/mydata/UCRET'  
             PASSING   
                xmltype('<mydata>'||pISLEMLER||'</mydata>
                ')
             COLUMNS  
                --describe columns and path to them:  
                F_M_IS_ID  varchar2(20)    PATH './FMISID',  
                ISKONTO varchar2(20)    PATH 'ISK'
         ) xmlt;