在對orcale資料庫檔案進行匯出時,我們希望批量處理已經寫好的sql**,但是在終端正常情況下無法進行迴圈執行**。sqlplus我們可以對多行**批量處理,步驟如下:
(1)首先你連線.s**件:sh 資料夾路徑名/.s**件 待連線的資料庫
(2)終端出現sql>時,說明資料庫連線成功了,此時輸入的語句為@…/test.sql;。這樣就可以將資料庫中的檔案匯出到指定的資料夾。
上面的test.sql檔案是我們需要執行的**,@後面跟的是檔案的路徑,test.sql檔案詳情如下:
sqlplus -s scott/tiger《上面**中,spool開始到spool off結束,中間的部分是我們要執行的sql語句,spool後面表示生成檔案的位置,即將select得出的資料內容寫到什麼地方去。
上面那一對set是乙個設定的過程,具體如下:
spool常用的設定:
set head off:輸出域標題,預設為on
set linesize 20000:linesize可以設定的大點,防止一行長度不夠
set echo off:顯示sqlplus中的每個sql命令本身,預設為on
set feedback off:回顯本次sql命令處理的記錄條數,預設為on
set pagesize 0:輸出每頁行數,預設為24,為了避免分頁,可設定為0
set termout off:顯示指令碼中的命令的執行結果,預設為on
set trimout on:去除標準輸出每行的拖尾空格,預設為off
set trimspool on:去除重定向(spool)輸出每行的拖尾空格,預設為off
!!!補充:
我們想要輸出不同格式的資料,這個時候需要對select內容進行規範。
正常下:select id, username, password from table
出現的結果是:
1 john 1234
2 jack 12345
3 rose 2345
4 joe 384657
5 tom 384655
6 jordan 384455
然而有時候我們需要輸出1,john,1234這種格式,此時有兩種方法:
(1)對sql檔案中的select語句格式進行改變:
select id||』,』||username||』,』||password||』,』 from table
(2)通過set設定,令set colsep『,』;
這兩種方法都可以達到同樣的效果,但是方法(2)具有很多的不確定性,因此推薦使用方法(1)
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...
spool命令使用詳解
spool命令使用詳解 spool是 sqlplus的命令,必須在sqlplus中使用,主要完成以標準輸出方式輸出sqlplus的命令及執行結果,一般常使用者格式化匯出oracle表資料。對於 spool資料的 sql,最好要自己定義格式,以方便程式直接匯入 sql語句如 select custco...
Oracle中SPOOL命令使用方法詳解
舉例 test.sh 如下 複製 bin sh sqlplus s scott tiger spool常用的設定 set head off 輸出域標題,預設為on set linesize 20000 linesize可以設定的大點,防止一行長度不夠 set echo off 顯示sqlplus中的...