spool 本來是很好用的,但是在格式化資料上 ,不太熟悉set命令,於是網上找了下,在此備忘下:
SQL>set colsep' '; //-域輸出分隔字元
SQL>set newp none //設定查詢出來的資料分多少頁顯示,如果需要連續的資料,中間不要出現空行就把newp設定為none,這樣輸出的資料行都是連續的,中間沒有空行之類的
SQL>set echo off; //顯示start啟動的指令碼中的每個sql命令,預設為on
SQL> set echo on //設定運行命令是是否顯示語句
SQL> set feedback on; //設定顯示“已選擇XX行”
SQL>set feedback off; //回顯本次sql命令處理的記錄條數,預設為on即去掉最後的 "已經選擇10000行"
SQL>set heading off; //輸出域標題,預設為on 設定為off就去掉了select結果的欄位名,只顯示資料
SQL>set pagesize 0; //輸出每頁行數,預設為24,為了避免分頁,可設定為0。
SQL>set linesize 80; //輸出一行字元個數,預設為80
SQL>set numwidth 12; //輸出number類型域長度,預設為10
SQL>set termout off; //顯示指令碼中的命令的執行結果,預設為on
SQL>set trimout on;//去除標準輸出每行的拖尾空格,預設為off
SQL>set trimspool on;//去除重新導向(spool)輸出每行的拖尾空格,預設為off
SQL>set serveroutput on; //設定允許顯示輸出類似dbms_output
SQL> set timing on; //設定顯示“經過時間:XXXX”
SQL> set autotrace on-; //設定允許對執行的sql進行分析
set verify off //可以關閉和開啟提示確認資訊old 1和new 1的顯示.
Oracle 匯出資料到檔案:
sqlplus /nolog @d:\sp.sql
d:\sp.sql內容如下:
set head off
set headsep off
set newp none
set linesize 100
set pagesize 10000
set sqlblanklines OFF
set trimspool ON
set termout off
set feedback off
spool d:\export.txt
select NODECODE||'&'||NODETYPE||'&'||NODENAME||'&' from "000".tbnode;
spool off
exit