oracle匯出資料到檔案中的方法 -- 轉自網路

ningzi82發表於2010-10-19
1: 用spool

set echo off --是否顯示執行的命令內容
set feedback off --是否顯示 * rows selected
set heading off --是否顯示欄位的名稱
set verify off --是否顯示替代變數被替代前後的語句。fil
set trimspool off --去欄位空格
set pagesize 500 --頁面大小
set linesize 500 --linesize設定儘量根據需要來設定,大了生成的檔案也大
define fil= 'f:user.xls'
prompt *** Spooling to &fil
spool &fil
select u.username,u.userpwd,u.realname,u.sex,u.mobile,d.dep_name from t_user u left join t_dept d on u.dept_id=d.dep_id ;
spool off;[@more@]





2:採用TODO
如果是匯出Excel格式檔案,會出現中文亂碼問題。
解決的辦法是:
匯出的選項中選擇excel instance;
匯出的時候,把 Write Wide Strings 選上。

轉自:

---------

1.D盤下新建兩個sql指令碼:empmail.sql , emp.sql,指令碼內容如下:
1)empmain.sql:
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
spool emp.xls
@emp.sql
spool off
exit

備註:可以有多個spool ... spool off塊。
這樣就可以實現批次匯出多個excel檔案了。

2)emp.sql: select * from emp;
2.執行sql指令碼
D:>sqlplus scott/tiger
SQL> @empmain.sql
D:>
3.檢視D盤下的emp.xls

set colsep' ';    //域輸出分隔符
set echo off;     //顯示 start啟動的指令碼中的每個 sql命令,預設為 on
set feedback off;   //回顯本次 sql命令處理的記錄條數,預設為 on
set heading off;   //輸出域標題,預設為 on
set linesize 80; //輸出一行字元個數,預設為80
set pagesize 0;    //輸出每頁行數,預設為 24,為了避免分頁,可設定為 0。
set termout off;   //顯示指令碼中的命令的執行結果,預設為 on
set trimout on;    //去除標準輸出每行的拖尾空格,預設為 off
set trimspool on;   //去除重定向( spool)輸出每行的拖尾空格,預設為 off
set timing off; //顯示每條sql命令的耗時,預設為off
set verify off; //是否顯示替代變數被替代前後的語句。Fil

執行以下指令碼:
set echo on;
set feedback on;
set trimspool off;
set linesize 120;
set pagesize 2000;
set newpage 1;
set heading on;
set term off;
set termout on;
set timing off;
spool d:sysdate.txt;
select sysdate from dual;
spool off;
exit;
執行完成後將在d盤的根目錄下產生一個sysdate.txt檔案,裡面就是匯出的資料。


轉自:http://gonglianying.javaeye.com/blog/731381

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/789833/viewspace-1039955/,如需轉載,請註明出處,否則將追究法律責任。

相關文章