實驗-shell執行資料庫命令.TXT
今天來複習一下在shell中如何登陸oracle,並執行指令碼或命令。
我編了以下這個小程式,起名為test.txt用於修改表結構,並執行幾條輸出命令:
#!/bin/sh
sqlplus -s "scott/tiger"<alter table bymt add sales_nm varchar2(6);
alter table binfo add sales_nm varchar2(6);
sqlplus -s "scott/tiger"<alter table bymt add sales_nm varchar2(6);
alter table binfo add sales_nm varchar2(6);
Set timing on --該設定可以使結果中顯示語句執行耗時
Set time on --此設定沒有意義,因為無論是此檔案的日誌還是使用spool,都不顯示sqlplus的提示符
Set serveroutput on
Set time on --此設定沒有意義,因為無論是此檔案的日誌還是使用spool,都不顯示sqlplus的提示符
Set serveroutput on
select * from v\$instance; --此處用於說明在使用$符號時,需要前面加斜槓進行轉義,否則shell會將其看做是呼叫的變數
spool /u01/mig/TL/test.log --在shell指令碼中,只要用sqlplus登入了,也是可以開啟spool,將程式塊結果放入檔案中的
spool /u01/mig/TL/test.log --在shell指令碼中,只要用sqlplus登入了,也是可以開啟spool,將程式塊結果放入檔案中的
declare
i_vc_code varchar2(2);
i_vc_schema varchar2(100);
begin
i_vc_code:='NZ';
i_vc_schema:='NZNZ';
dbms_output.put_line('CODE is:'||i_vc_code);
dbms_lock.sleep(5);
dbms_output.put_line('SCHEMA NAME is :'||i_vc_chema);
end;
/
i_vc_code varchar2(2);
i_vc_schema varchar2(100);
begin
i_vc_code:='NZ';
i_vc_schema:='NZNZ';
dbms_output.put_line('CODE is:'||i_vc_code);
dbms_lock.sleep(5);
dbms_output.put_line('SCHEMA NAME is :'||i_vc_chema);
end;
/
@/u01/mig/TL/tian.txt --在此環境下,還可以執行一些子指令碼
spool off
呼叫此檔案,就可以執行sqlplus環境下的命令的。
[oracle@TSTDB TL]$ ./test.txt &
[1] 11076
[oracle@TSTDB TL]$
此處需要提一句,如果執行某個單獨的檔案,在檔案執行語句後面加 &就可以令其快速返回游標(後臺執行);
但如果像上面的程式那樣,存在巢狀,可能還沒來得及在執行該語句後再次按下回車,子程式已經開始執行了,這時候就無法後臺執行了。
[oracle@TSTDB TL]$ ./test.txt &
[1] 11076
[oracle@TSTDB TL]$
此處需要提一句,如果執行某個單獨的檔案,在檔案執行語句後面加 &就可以令其快速返回游標(後臺執行);
但如果像上面的程式那樣,存在巢狀,可能還沒來得及在執行該語句後再次按下回車,子程式已經開始執行了,這時候就無法後臺執行了。
若使用命令 nohup ./test.txt &
會將結果日誌記錄到nohup.out檔案中,並能夠迅速返回游標。
會將結果日誌記錄到nohup.out檔案中,並能夠迅速返回游標。
我們使用shell,一般都是處於兩個目的:
1)自動化
2)在我們期望執行的時間執行
要達到第二個目的,可以在系統設定crontab任務。
[oracle@TSTDB TL]$ crontab -e --新增,用VI命令將需要設定的任務寫入檔案,所有使用者的定時任務放在/var/spool/cron中
[oracle@TSTDB TL]$ crontab -l --檢視
20 18 * * * /u01/mig/TL/bsd_exe.txt >>nohup.out
[oracle@TSTDB TL]$ crontab -r --刪除
[oracle@TSTDB TL]$ crontab -l --檢視
20 18 * * * /u01/mig/TL/bsd_exe.txt >>nohup.out
[oracle@TSTDB TL]$ crontab -r --刪除
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-764802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實驗-資料分佈對執行計劃的影響.txt
- oracle資料庫執行狀態監控SHELLOracle資料庫
- redis-cli在shell下執行命令處理資料Redis
- 11. shell多執行緒備份資料庫執行緒資料庫
- Java執行shell、cmd命令Java
- shell 下執行mysql 命令MySql
- Shell多執行緒備份資料庫的指令碼執行緒資料庫指令碼
- 【Mongo】shell命令列模式執行mongo命令Go命令列模式
- shell命令列中操作HBase資料庫命令列資料庫
- oracle資料庫使用sqlldr命令匯入txt資料Oracle資料庫SQL
- python裡執行shell命令或cmd命令Python
- [20210618]記錄bash shell執行的命令.txt
- awk小技巧之執行shell命令
- 在shell中執行SQL*Plus命令SQL
- 資料庫-SHELL資料庫
- 資料庫實驗二資料庫
- shell指令碼linux命令連續執行指令碼Linux
- 資料庫實驗八 資料庫程式設計資料庫程式設計
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- 實驗-閃回資料庫資料庫
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- crontab異常:shell下可以執行命令,執行crontab卻報錯
- cmd命令列下用命令執行SQL指令碼到SQL Server資料庫中命令列SQL指令碼Server資料庫
- 1.3.3.5. 步驟4:執行SQL*Plus 連線資料庫命令SQL資料庫
- 資料庫實驗五 資料庫的安全性資料庫
- Shell指令碼中執行sql語句操作MySQL資料庫的幾個方法指令碼MySql資料庫
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- 在 Ruby 中執行 Shell 命令的 6 種方法
- 六種用ruby呼叫執行shell命令的方法
- C++/Php/Python語言執行shell命令C++PHPPython
- Kettle資料庫資源庫連線執行示例資料庫
- 資料庫遷移之資料泵實驗資料庫
- shell 操作mysql資料庫MySql資料庫
- oracle實驗-資料庫複製Oracle資料庫
- 寫資料庫實驗報告資料庫
- oracle 資料庫全庫恢復實驗Oracle資料庫
- 資料庫執行計劃和資料存取方式資料庫
- 實驗--多執行緒執行緒