Sql plus技巧之SPOOL應用

2021-04-15 09:32:51 字數 1524 閱讀 1401

1.使用sql*plus動態生成批量指令碼

建立gen_drop_table.sql檔案,包含如下語句:

set echo off  //不顯示start啟動的指令碼中的每個sql

set feedback off  //不回顯處理記錄條數

set newpage none

set linesize 2000 //一行字元個數

set verify off  關閉確認資訊

set pagesize 0  //不分頁

set term off   //去除每行拖尾空格

set trims on //去除重定向每行的拖尾空格

set heading  off

set timing off

set verify off

set numwidth 38

spool  c:/drop_table.sql

select 'drop table '|| table_name ||';' from user_tables;

spool off

2.將乙個表中的資料匯出生成乙個文字檔案,列與列之間以」,」隔開

set echo off

set feedback off

set newpage none

set pagesize 5000

set linesize 500

set verify off

set pagesize 0

set term off

set trims on

set linesize 600

set heading  off

set timing off

set verify off

set numwidth 38

spool  c:/drop_table.sql

select deptno || ',' || dname from dept;

spool off

3.動態生成spool命令所需的檔名

在我們上面的例子中,spool命令所需要的檔名都是固定的。有時我們需要每天spool一次,並且每次spool的檔名都不相同,如檔名包含當天的日期,該如何實現呢?

column dat1 new_value filename;

select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual;

spool c:/&&filename..txt

select * from dept;

spool off;

4.如何從指令碼檔案中得到windows環境變數的值:

在windos中:

spool c:/temp/%oracle_sid%.txt

select * from dept;

...spool off

在上面的例子中,通過%oracle_sid%的方式引用環境變數oracle_sid的值,如果oracle_sid的值為orcl,則生成的spool檔名為:orcl.txt

sqlplus 中的spool命令

sqlplus nolog eof set linesize 2500 set pagesize 0 set heading off set feedback off set echo off set termout off set trimout on set trimspool on set s...

SQLPLUS命令技巧

sqlplus命令技巧 待續補充中.sqlplus中任何命令都可以使用前3位作為簡寫,如column簡寫成col 1 檢視當前sqlplus快取的命令 list 2 清屏命令 ho cls或cle scr或clear screen,個人比較習慣使用ho cls 3 繼續執行上次命令 輸入 敲擊回車或...

學習筆記 spool小技巧

在寫指令碼執行oracle sql時,會用到spool工具,但是遇到乙個問題就是,執行的sql會輸出到屏顯,但是我只需要輸出到指定的檔案,不需要屏顯。1.修改前 案例 編寫tmp.sh指令碼,檢視oracle例項狀態和日誌模式,將執行過程輸出到 tmp status.txt root linux v...