本文共 1161 字,大约阅读时间需要 3 分钟。
1. 启动sqlplus执行>
(1)获取导出表的所有字段:
替换语句中TABLE_NAME,OWNER为需要导出的表名及表的用户名,修改语句后在sqlplus中执行(执行用户需要有dba权限)
1 2 3 4 | SELECT replace (wm_concat(cols), ',' , '||' ) FROM ( SELECT '' '' || ' <' ||COLUMN_NAME|| '>' || '' '' || '||' ||column_name|| '||' || '' '' || '<' ||column_name|| '/>' || '' '' AS cols FROM DBA_COL_COMMENTS WHERE TABLE_NAME = 'DEPT' AND owner= 'SCOTT' ) ; |
2. 新建脚本xml.sql文件,脚本内容如下:
将以下语句中<ROW>到||'<ROW>'之间的内容替换为步骤1中的执行结果,SCOTT.DEPT修改为步骤1中的用户名及表名,修改后在sqlplus中执行此语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | set colsep , set feedback off set heading off set trimout on spool /home/oracle/dept.xml SELECT '<?xml version="1.0" ?> <ROWDATA> ' || replace (wm_concat(dept_info), ',' , ' ' )|| ' </ROWDATA>' FROM ( SELECT ' <ROW> <C0>' ||ROWNUM|| '</C0>' || ' <DEPTNO>' ||DEPTNO|| '<DEPTNO/>' || ' <DNAME>' ||DNAME|| '<DNAME/>' || ' <LOC>' ||LOC|| '<LOC/>' || ' </ROW> ' AS dept_info FROM SCOTT.DEPT ); spool off exit |
注释:
spool /home/oracle/dept.xml --指定导出xml文件路径及文件名(可修改)
select语句指定导出表及字段
3. 导出结果为xml格式(执行用户需要拥有导出表的select权限)
sqlplus -s 用户名/密码@数据库名 @/路径/xml_auto.sql
本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/2050079,如需转载请自行联系原作者