在特定时间运行SQL查询

时间:2020-01-30 09:49:44

标签: sql oracle loops

如何在循环中的特定时间段(60分钟)内在oracle数据库上运行sql查询(插入表)。

1 个答案:

答案 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>

如您所见,MINMIN日期之间的时差实际上是6秒。

我插入了几行?

SQL> select count(*) from test;

  COUNT(*)
----------
    448624

SQL>

我不知道你要做什么;我希望您的磁盘上有足够的空间用于数百万行。

相关问题