2017-09-04 38 views
0

聰明人!將集合包裝爲PL/SQL中的XMLTYPE(Oracle)

可以說我有一個表:

id NUMBER  name VARCHAR2  info XMLTYPE 
-- 
1    Brad    <?xml version="1.0" encoding="ISO-8859-5"?> 
2    Angelina   <?xml version="1.0" encoding="ISO-8859-5"?> 

在我的包,我可以選擇它的一些集合變量v_table

我需要將其轉換爲XML並返回XMLTYPE,像這樣:

<?xml version="1.0" encoding="ISO-8859-5"?> 
<rows> 
    <row> 
     <id type="NUMBER">1</id> 
     <name type="VARCHAR2">Brad</name> 
     <info type="XMLTYPE"><!-- somehow insert here xml, maybe base64 encoded --></info> 
    </row> 
    <row> 
     <id type="NUMBER">2</id> 
     <name type="VARCHAR2">Angelina</name> 
     <info type="XMLTYPE"><!-- somehow insert here xml, maybe base64 encoded --></info> 
    </row> 
</rows> 

所以我需要做一些通用的功能,任何集合轉換成XML。不幸的是,我不知道PL/SQL(只有MySQL,MsSQL),而我只是不知道正確的開始方式。你能給我一些建議嗎?

PS:「type」屬性不是必需的,但會很酷。

+1

它是否需要轉換一個集合,還是有足夠的功能來直接將SQL轉換爲XML?包[DBMS_XMLGEN](https://docs.oracle.com/database/121/ARPLS/d_xmlgen.htm#ARPLS374)已經做到了。例如:'從雙選擇'dbms_xmlgen.getxml('select * from dual');'。然後,您可以通過XMLType函數TRANSFORM將樣式表應用於結果。 –

+0

我知道我只是不知道明顯的東西。謝謝! – Levsha

回答

0

謝謝,Jon Heller!

包DBMS_XMLGEN已經做到了。例如:從dual;中選擇dbms_xmlgen.getxml('select * from dual')。然後,您可以通過XMLType函數TRANSFORM將樣式表應用於結果。