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,如需转载请自行联系原作者