本文介绍不同数据库下DBMS_XMLGEN函数的使用场景。
背景说明
Oracle支持DBDBMS_XMLGEN包及其函数对xml类型数据进行操作。
SQL> SELECT dbms_xmlgen.newcontext('select * from dbmgr.xmldemo') FROM dual;
DBMS_XMLGEN.NEWCONTEXT('SELECT*FROMDBMGR.XMLDEMO')
--------------------------------------------------
1
SQL> select dbms_xmlgen.getxml(1) from dual;
DBMS_XMLGEN.GETXML(1)
--------------------------------------------------------------------------------
<?xml version="1.0"?>
<ROWSET>
<ROW>
<A>10</A>
<B>first line</B>
</ROW>
<
解决方案
虽然PolarDB O引擎不支持DBMS_XMLGEN包及其函数,但是PolarDB有提供XML相关函数,如xmlagg, xmlroot, xmlforest,
xmlelement, xmlconcat,xmlcomment,您可以使用这些函数来实现类似功能。
van=> SELECT xmlforest(a AS A, b AS B) from xmldemo;
xmlforest
----------------------------
<a>10</a><b>first line</b>
<a>20</a><b>line 2</b>
(2 rows)
更多方法请参见https://www.postgresql.org/docs/11/functions-xml.html。