簡體   English   中英

當sql查詢返回多行時如何創建XML樹

[英]how to create XML tree when sql query return multiple rows

我有表(tab1)連接2表名為tab2,可以返回多行。 我也加入了tab3,它只返回唯一的行

SELECT col1,col2,col3
FROM tab1 
LEFT JOIN tab2 ON tab1.col1=tab2.col2 
LEFT JOIN tab3 ON tab1.col1=tab3.col1

我需要XML格式的結果

<JOB>
<col1>1<col1>
<tab2>
<col2>1<\col2>
<col3>2<\col3>
<\tab2>
<tab2>
<col2>4<\col2>
<col3>5<\col3>
<\tab2>
<\JOB>

有什么方法可以在sql中執行此操作請告訴我您是否需要更多信息

您可以通過兩種方式生成XML documnet。

1)使用XMLTYPE的構造函數

DECLARE
   l_refcursor SYS_REFCURSOR;
   l_xmltype XMLTYPE;
BEGIN
   OPEN l_refcursor FOR SELECT employee_id
                             , first_name
                             , job_id
                          FROM employee 
                          join emplyee
                          on employee_id = empid;


   l_xmltype := XMLTYPE(l_refcursor);
   dbms_output.put_line(l_xmltype.getClobVal);
END;
/

2)使用DBMS_XMLGEN包。 DBMS_XMLGEN內置類似於XMLTYPE構造函數,但直接接受查詢:

DECLARE
   l_xmltype XMLTYPE;
BEGIN
    l_xmltype := dbms_xmlgen.getxmltype('SELECT employee_id
                                             , first_name
                                             , job_id
                                          FROM employee 
                                          join emplyee
                                          on employee_id = empid'
                                       );

    dbms_output.put_line(l_xmltype.getClobVal);
END;
/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM