如何在循环中的特定时间段(60分钟)内在oracle数据库上运行sql查询(插入表)。
答案 0 :(得分:0)
这里是一个选择:
我不想等待1个小时,所以我用了0.1分钟= 6秒。
SQL> create table test (datum date);
Table created.
SQL> declare
2 l_mins_to_exit number := 0.1; -- Exit in 0.1 minutes = 6 seconds.
3 -- You'd put 60 in here
4 l_start date;
5 l_minutes number;
6 begin
7 l_start := sysdate;
8
9 loop
10 insert into test (datum) values (sysdate);
11
12 l_minutes := (sysdate - l_start) * 24 * 60;
13 exit when l_minutes > 0.1;
14 end loop;
15 end;
16 /
PL/SQL procedure successfully completed.
SQL> select min(datum), max(datum) from test;
MIN(DATUM) MAX(DATUM)
------------------- -------------------
30.01.2020 12:57:07 30.01.2020 12:57:13
SQL>
如您所见,MIN
和MIN
日期之间的时差实际上是6
秒。
我插入了几行?
SQL> select count(*) from test;
COUNT(*)
----------
448624
SQL>
我不知道你要做什么;我希望您的磁盘上有足够的空间用于数百万行。