spool是oracle sql*plus下的命令,可以用它來匯出表中的大量資料,生成格式可以由自己手動控制。因工作需要將oracle下的某張表的資料遷移到mysql下,所以學習了下spool的用法,下面就乙個小例子:「匯出scott使用者的dept表」來講解spool這個命令。
1. 編寫spool.sql指令碼,存放在d盤根目錄下
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
set echo off
set feedback off
spool d:\\data.txt
select deptno || ',' || dname || ',' || loc from dept;
spool off
2. 在sql*plus上用scott使用者登入,執行上面的sql指令碼
@d:\spool.sql
3.觀察d盤根目錄,生成了data.txt檔案,txt中的內容如下:
10,accounting,new york
20,research,dallas
30,sales,chicago
40,operations,boston
總結:利用spool可以方便地匯出所需要的表,進而可以利用匯出的資料進行不同資料庫間的資料遷移。下面介紹使用spool的一些常用設定:
set colsep ' '; //域輸出分隔符
set echo off; //顯示start啟動的指令碼中的每個sql命令,預設為on
set feedback off; //回顯本次sql命令處理的記錄條數,預設為on
set heading off; //輸出域標題,預設為on
set pagesize 0; //輸出每頁行數,預設為24,為了避免分頁,可設定為0。
set termout off; //顯示指令碼中的命令的執行結果,預設為on(可以縮寫為term)
set trimout on; //去除標準輸出每行的拖尾空格,預設為off
set trimspool on; //去除重定向(spool)輸出每行的拖尾空格,預設為off
注意:如果直接在sql*plus中執行上面的spool.sql命令,而不通過執行指令碼來進行,那麼在生成的txt檔案中會存在執行的sql語句。
Oracle spool 用法小結
關於spool spool是sqlplus的命令,不是sql語法裡面的東西。對於spool資料的sql,最好要自己定義格式,以方便程式直接匯入,sql語句如 select taskindex commonindex tasktype to number to char sysdate,yyyymmd...
Oracle spool 用法小結
關於spool spool是sqlplus的命令,不是sql語法裡面的東西。對於spool資料的sql,最好要自己定義格式,以方便程式直接匯入,sql語句如 select taskindex commonindex tasktype to number to char sysdate,yyyymmd...
Oracle spool 用法小結
匯出結果到文字 spool 例如 spool d spool flatquery.txt 這樣,sql plus將把所有的輸出以及在螢幕上的命令等都指定給該檔案。執行查詢輸出。此時,系統並沒有把結果儲存到檔案中,而是儲存到緩衝區中。查詢結束後,關閉檔案即可。命令格式為 spool off。1.對於s...