Oracle spool使用實踐

2021-06-22 20:17:16 字數 1244 閱讀 7385

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...