整理 oracle spool 用法

2022-08-22 14:45:18 字數 1739 閱讀 5159

1.spool的作用是什麼?

spool的作用可以用一句話來描述:在sqlplus中用來儲存或列印查詢結果。

2.spool在oracle 9i、10g和11g下的語法及使用示例

oracle 9i spool語法 spo[ol] [file_name[.ext]|off|out]

oracle 10g、11g spool語法

oracle 9i spool的主法比較簡單,其實就相當於oracle 10g中spool的replace選項,因此本文主要介紹oracle 10g的選項。

file_name[.txt]

儲存查詢結果集的的路徑和檔名,如果沒有指定字尾名,預設名一般為.lst或.lis。如果指定系統檔案為/dev/null and /dev/stderr,則不會新增字尾名。

off 完成spool。

out 停止spool,並將檔案輸出到終端裝置上,如印表機(可能有些作業系統不支援)。

create     建立指定檔名的新檔案;如指定檔案存在,則報檔案存在錯誤。

replace     如果指定檔案存在則覆蓋替換;如指定檔案不存在,則建立,replace為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

set trimout on;   //去除標準輸出每行的拖尾空格,預設為off

set trimspool on;  //去除重定向(spool)輸出每行的拖尾空格,預設為off

set newp none  //設定查詢出來的資料分多少頁顯示,如果需要連續的資料,中間不要出現空行就把newp設定為none,這樣輸出的資料行都是連續的,中間沒有空行之類的

方法一:採用以下格式指令碼 

set colsep '|'               --設定|為列分隔符

set trimspool on

set linesize 120

set pagesize 2000         

set newpage 1

set heading off           

set term off 

set num 18                  

set feedback off           

spool 路徑+檔名

select * from tablename;

spool off

方法二:採用以下指令碼 

set trimspool on

set linesize 120

set pagesize 2000

set newpage 1

set heading off

set term off

spool 路徑+檔名

select col1||','||col2||','||col3||','||col4||'..' from tablename;

spool off

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