在PL / SQL(Oracle)中将集合包装到XMLTYPE

时间:2017-09-04 02:31:53

标签: oracle plsql xmltype

聪明人!

假设我有一张桌子:

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:&#34;输入&#34;属性不是必需的,但会很酷。

1 个答案:

答案 0 :(得分:0)

谢谢,Jon Heller!

  

包DBMS_XMLGEN已经这样做了。例如:从dual中选择dbms_xmlgen.getxml(&#39; select * from dual&#39;)。然后,您可以通过XMLType函数TRANSFORM将样式表应用于结果。