[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博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2917487/ ,如需转载,请注明出处,否则将追究法律责任。