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