1.spool的作用是什么?
spool的作用可以用一句話來描述:在sqlplus中用來保存或打印查詢結果。
2.spool在oracle 9i、10g和11g下的語法及使用示例
oracle 9i spool語法
SPO[OL] [file_name[.ext]|OFF|OUT]
oracle 10g、11g spool語法
SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
oracle 9i spool的主法比較簡單,其實就相當於oracle 10g中spool的replace選項,因此本文主要介紹oracle 10g的選項。
file_name[.txt]
保存查詢結果集的的路徑和文件名,如果沒有指定后綴名,默認名一般為.lst或.lis。如果指定系統文件為/dev/null and /dev/stderr,則不會添加后綴名。
off
完成spool。
out
停止spool,並將文件輸出到終端設備上,如打印機(可能有些操作系統不支持)。
我們從語法上可以看到,oracle在10g、11g中對spool增加了create、replace、append選項,
create
創建指定文件名的新文件;如指定文件存在,則報文件存在錯誤。
replace
如果指定文件存在則覆蓋替換;如指定文件不存在,則創建,replace為spool默認選項。
append
向指定文件名中追加內容;如指定文件不存在,則創建。
sqlplus spool的create、replace、append選項示例
spool spool.ora create
spool spool.ora repalce
spool spool.ora append
select taskindex||'|'||commonindex||'|'||tasktype||'|'||to_number(to_char(sysdate,'YYYYMMDD')) from ssrv_sendsms_task;