Sql 如何创建while循环?如果查询执行时间超过10分钟,那么它将退出

Sql 如何创建while循环?如果查询执行时间超过10分钟,那么它将退出,sql,oracle,time,while-loop,execution,Sql,Oracle,Time,While Loop,Execution,这是实际的查询,因此刷新通常在30秒或更短的时间内开始,然后结束,但有时会卡住。如果超过10分钟,我希望它结束 select 'Refresh started: '||to_char(sysdate,'DD-Mon-YYYY hh24:mi:ss') from dual; DECLARE temp integer; BEGIN temp := DBMS_DEFER_SYS.PUSH ( destination => 'some

这是实际的查询,因此刷新通常在30秒或更短的时间内开始,然后结束,但有时会卡住。如果超过10分钟,我希望它结束

select 'Refresh started: '||to_char(sysdate,'DD-Mon-YYYY hh24:mi:ss') from      
dual;
DECLARE
  temp integer;
BEGIN
  temp := DBMS_DEFER_SYS.PUSH (
                     destination => 'some address',
                     stop_on_error => FALSE,
                     delay_seconds => 0,
                     parallelism => 0);
end;
/
select 'Refresh Ended: '|| to_char(sysdate, 'DD-Mon-YYYY hh24:mi:ss') from     
dual;
disc
然后,它继续进行下一个查询,类似于上面的查询,但连接到其他地方

提前谢谢

查看
ALTER SESSION TIMEOUT nsecs
,看看这是否满足您的需要。 这取决于造成延迟的原因,而您似乎没有提到

有了更多的信息,您似乎想要一个资源配置文件-

可能是您指定的:

CONNECT_TIME 
Specify the total elapsed time limit for a session, expressed in minutes.

块中有多个查询,我想结束此查询,然后继续执行第一个查询完成后运行的下一个查询。好的,我已经编辑了上面的实际代码,因此它更有意义。您是否将此用于复制?如果在复制过程完成之前结束复制过程,可能会产生不幸的后果。这是复制,我可能不一定要结束复制,但如果查询已过一段时间,我会给DBA发电子邮件。我只是说退出作为一个例子,但如果查询已经运行了10分钟以上,我会给DBA发电子邮件。我该怎么说呢?alter session timeout似乎更多地是针对错误情况,延迟非常罕见,但有时确实会发生,很多时候可能不会出现错误消息(例如,没有错误)。因此,我希望执行查询,但需要一些超时条件,如果查询超过某个时间段(如10分钟),则会发送或中止电子邮件。这有助于了解更多信息。您需要资源配置文件-编辑答案