本文介紹不同數據庫下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。