[英]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.