[20220927]如何實現sqlcl的repeat功能.txt

lfree發表於2022-10-10

[20220927]如何實現sqlcl的repeat功能.txt

--//晚上看了sqlcl的一些介紹,裡面提到repeat功能.可以利用它執行前面執行的語句.支援2個引數.重複次數間隔時間.
--//例子:(注我沒有測試環境,無法執行)
select sysdate from dual;
--//執行5次間隔1秒
repeat 5 1

--//感覺很有意思,思考一下sqlplus能否實現.最先想到的外部命令watch.

$ watch -n 1  sqlplus -s -l scott/book <<<'select sysdate from dual;'
--//這樣不行,不支援<<<模式.
$ cat aa3.txt
select sysdate from dual;
quit

Every 1.0s: sqlplus -s -l scott/book @aa3.txt                                                                                                                                                                                                          Mon Oct 10 08:59:58 2022

SYSDATE
-------------------
2022-10-10 08:59:58

--//缺點就是每次都要呼叫sqlplus.而且只能ctrl+c中斷執行.

--//簡單寫一個測試指令碼如下:

$ cat repeat.sql
host seq &&1 | xargs -IQ echo -e  "/\nhost sleep &&2" >| repeat.tmp
@@ repeat.tmp

--//使用spool 不支援host的執行結果到檔案的模式.測試如下:

SCOTT@book> select sysdate from dual;
SYSDATE
-------------------
2022-10-10 09:19:31

SCOTT@book> @ repeat.sql 3 2

SYSDATE
-------------------
2022-10-10 09:19:35


SYSDATE
-------------------
2022-10-10 09:19:37


SYSDATE
-------------------
2022-10-10 09:19:39



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2917487/,如需轉載,請註明出處,否則將追究法律責任。

相關文章