使用PL / SQL提取XML属性的值

时间:2018-02-13 23:57:08

标签: sql xml oracle plsql

我有一些XML(给出的例子)

<emails>
    <email email_id="user1@email.com"/>
    <email email_id="user2@email.com"/>
    ...
    <email email_id="user8@email.com"/>
<emails>

我想从每个电子邮件节点获取email_id并将其放入字符串中。例如“user1@email.com,user2 @email.com,user3 @email.com ......”

我猜我需要以某种形式使用xmltable,但除了在select语句中编写它们之外,无法解决如何使用值。

2 个答案:

答案 0 :(得分:0)

您可以为此

使用XMLTYPE选项
app.js

答案 1 :(得分:0)

SELECT
LISTAGG(emailId, '; ')  
WITHIN GROUP(ORDER BY  emailId) "EmailList"
FROM
(
select emailId 
FROM XMLTABLE('/emails/email'  
         PASSING   
            xmltype('
               <emails>
    <email email_id="user1@email.com"/>
    <email email_id="user2@email.com"/>   
    <email email_id="user8@email.com"/>
      </emails>
            ')
         COLUMNS  

            emailId  varchar2(200)     PATH './@email_id'
     ) xmlt  
 )

;