我们一直在使用SQL Developer的数据库导出功能来创建一些数据转储文件。文件格式如下:
<?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>
但是最近管理层决定自动化该过程,一种选择是使用假脱机:
SPOOL 'D:\SOME\PATH\TO\DIR\1.XML'
SELECT dbms_xmlgen.getxmltype('SELECT A_ID, B_ID FROM SOME_TABLE') FROM DUAL;
SPOOL OFF;
但是,dbms_xmlgen.getxmltype在导出的文件中提供了不同的标记类型:
<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>
有没有一种方法可以更改TAG格式并添加CDATA,使其与SQL Developer导出文件完全相同?
感谢您的时间。
也许更简单的方法是使用SQLcl,它与SQL Developer具有相同的“引擎”。因此,在SQLcl中,您将执行此操作
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>
从这里下载SQLcl
https://www.oracle.com/au/tools/downloads/sqlcl-downloads.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句