我由 http://blog.csdn.net/indexman/article/details/28130961
http://blog.csdn.net/zhangchu_63/article/details/5554973
F1.使用dbms_xmlquery和utl_file内置包(scott用户执行)
F1-1.使用dbms_xmlgen
F2.使用XMLELEMENT系列内置函数返回xml(sys用户执行)
F3.使用SPOOL方式导出文件:
其中 F1與F1-1 似乎只能 撈取單層資料 ==>1對1
select empno,ename,job,mgr, hiredate
,sal,comm,deptno from emp
結果
<ROWSET>
<ROW num="1">
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>1980-12-17 00:00:00</HIREDATE>
<SAL>800</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
....
</ROWSET>
而 F2. XMLELEMENT 可以達到多層 ==> 1對多
- <DEPARTMENT ID="20" NAME="Marketing">
- <EMPLOYEES>
- <EMPLOYEE>
<ID>201</ID>
<NAME>Michael Hartstein</NAME>
</EMPLOYEE>
- <EMPLOYEE>
<ID>202</ID>
<NAME>Pat Fay</NAME>
</EMPLOYEE>
- <EMPLOYEE>
<ID>3333</ID>
<NAME>Eric Hu</NAME>
</EMPLOYEE>
</EMPLOYEES>
</DEPARTMENT>
Q1.(F2)可以做出1對多的資料,但他卻不好編寫
請問 F1 可以 有辦法做出 1對多的方式嗎?
Q2.F3.SQLPLUS使用SPOOL 匯出
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool D:\test.log
SELECT sysdate FROM dual;
spool off
/
結果 匯出的資料卻呈現
SQL> SELECT sysdate FROM dual;
09-10月-14
SQL> spool off
WHY?
------解决思路----------------------
可以利用to_char进行格式转化输出
SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM dual;