Reputation: 867
We have been using SQL developer's database export function to create some data dump files. The file format looks like this:
<?xml version='1.0' encoding='Cp1252' ?> <RESULTS> <ROW> <COLUMN NAME="A_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="B_ID"><![CDATA[A3V09LJAF]]></COLUMN> </ROW> <ROW> <COLUMN NAME="A_ID"><![CDATA[5]]></COLUMN> <COLUMN NAME="B_ID"><![CDATA[4FAPU90FSD]]></COLUMN> </ROW> </RESULTS>
But recently the management decided to automate the process, one option is to use spool:
SPOOL 'D:\SOME\PATH\TO\DIR\1.XML'
SELECT dbms_xmlgen.getxmltype('SELECT A_ID, B_ID FROM SOME_TABLE') FROM DUAL;
SPOOL OFF;
However the dbms_xmlgen.getxmltype gives different tag type in the exported file:
<ROWSET> <ROW> <A_ID>3</A_ID> <B_ID>A3V09LJAF</B_ID> </ROW> <ROW> <A_ID>5</A_ID> <B_ID>4FAPU90FSD</B_ID> </ROW> </ROWSET>
Is there a way to change the TAG format and add the CDATA to be exact as SQL developer export file?
Thank you for your time.
Upvotes: 1
Views: 328
Reputation: 11616
Perhaps an easier way would be use SQLcl, which has the same "engine" as SQL Developer. Thus in SQLcl you would do this
SQL> SET SQLFORMAT XML
SQL> SELECT * FROM emp WHERE deptno = 20;
<?xml version='1.0' encoding='UTF8' ?>
<RESULTS>
<ROW>
<COLUMN NAME="EMPNO"><![CDATA[7369]]></COLUMN>
<COLUMN NAME="ENAME"><![CDATA[SMITH]]></COLUMN>
<COLUMN NAME="JOB"><![CDATA[CLERK]]></COLUMN>
<COLUMN NAME="MGR"><![CDATA[7902]]></COLUMN>
<COLUMN NAME="HIREDATE"><![CDATA[17-DEC-80]]></COLUMN>
<COLUMN NAME="SAL"><![CDATA[800]]></COLUMN>
<COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
<COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
</ROW>
Download SQLcl from here
https://www.oracle.com/au/tools/downloads/sqlcl-downloads.html
Upvotes: 2