1. 啓動sqlplus執行>
(1)獲取導出表的所有字段:
替換語句中TABLE_NAME,OWNER爲需要導出的表名及表的用戶名,修改語句後在sqlplus中執行(執行用戶需要有dba權限)
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中執行此語句
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