ORCLE導出大量數據到txt
方法一
操作步驟
?
Sql代碼
set
echo
off
在用start命令執行一個sql腳本時 是否顯示腳本中正在執行的SQL語句
set
feedback
off
是否顯示當前sql語句查詢或修改的行數
set
newpage none
會在頁和頁之間沒有任何間隔
set
verify
off
set
pagesize
分多少頁
?
set
term
off
在用spool命令將一個大表中的內容輸出到一個文件中時 將內容輸出在屏幕上會耗費大量的時間 設置set termspool off後 則輸出的內容只會保存在輸出文件中 不會顯示在屏幕上 極大的提高了spool的速度
set
trims
on
將SPOOL輸出中每行後面多余的空格去掉
set
linesize
設置屏幕顯示行寬 默認
set
heading
off
禁止輸出列標題
set
timing
off
默認為OFF 設置查詢耗時 可用來估計SQL語句的執行時間 測試性能
set
numwidth
SPOOL D:\aaa txt
select
UserTelNo ||
|| to_char(ReceiveTime
yyyy MM dd HH :MI:SS
) ||
|| UserContent ||
|| ReplyContent
FROM
LogSMSHall_Mutual
WHERE
rownum<= ;
SPOOL
OFF
注意如果有clob字段的話
如果是在數據庫本機
如果遠程登錄
在SQLPlus命令窗口中執行步驟
優點
缺點
方法二
操作步驟(只需要一步
編寫PL/SQL過程
?
Sql代碼
DECLARE
row_result varchar ( );
selectsql varchar ( );
qrycursor SYS_REFCURSOR;
txt_handle UTL_FILE file_type;
BEGIN
selectsql :=
select bizname ||
|| bizstatus from bizbusinessbaseinfo
;
txt_handle := UTL_FILE FOPEN(
D:/UTL
a txt
w
);
open
qrycursor
for
selectsql;
loop
fetch
qrycursor
into
row_result;
exit
when
qrycursor%notfound;
UTL_FILE PUT_LINE(txt_handle row_result);
end
loop;
關閉游標
close
qrycursor;
UTL_FILE FCLOSE(txt_handle);
end
;
注意事項
如果沒有設置參數utl_file_dir參數
a) 在init
b) 在sqlplus命令行設置
?
alter
system
set
utl_file_dir=* scope=spfile;
注意設置utl_file_dir的要點
utl_file_dir=* 這表示你能操作任何目錄
utl_file_dir=d:\ 這表示你能操作d:\目錄下的文件
注意在設置 utl_file_dir=路徑時
utl_file_dir可以是多個路徑 utl_file_dir=c:\
設置完必須重新啟動數據庫
在命令行中執行命令create or replace directory MY_DIR as
優點
缺點
From:http://tw.wingwit.com/Article/program/Oracle/201311/18248.html