Oracle 延时执行问题求指教:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 延时执行问题求指教:相关的知识,希望对你有一定的参考价值。

A表有N条数据,同时有个字段a1是记录延迟时间(分钟)的
如 表A
ID a1
1 0
2 1
3 1
4 5
。。。。。
要得到的效果是:当执行某个存储过程P1时,根据A表字段a1里面的时间值,延迟相应的时间执行另一个存储过程P2,P2的目的是插入数据到表B,请问怎么才能实现在相应的延迟时间后表B马上能有数据(注意a1里面可能有多个值是相同的哦)

参考技术A 使用dbms_lock.sleep(10);实现延时,本句子是等待10秒钟,具体想等待的时间,你可以从表中查询,再使用参数传递,即可实现。追问

dbms_lock.sleep(10) 这个只能等待执行完一条数据后又重新从刚执行完的那个时间点开始计算时间再执行。。。那么比如我3条数据都是需要1分钟后同时插入到B表,用dbms_lock.sleep的话就只能每隔1分钟逐条插入,3分钟后才能插入完,这样不可行哦

追答

你过个过程,然后把这三条记录都查询出来
生成三个等待的dbms_lock.sleep,然后去执行不就可以了?

参考技术B 思路:
存储过程P1取当前时间,取A表设置延后的时间,然后循环判断,直到达到执行存储P2的时间,则停止循环开始执行P2,最后完成P1的执行。本回答被提问者采纳
参考技术C 写完太多,思路如下:
采用游标的方式逐行读取表a数据,
使用dbms_lock.sleep(ss);来实现延时执行sql

以上是关于Oracle 延时执行问题求指教:的主要内容,如果未能解决你的问题,请参考以下文章

关于oracle延时型注入手工注入的思考

这两个延时函数该怎么理解,又怎么使用,请大神指教?

Oracle Coherence 3.5 读书笔记之3 - 满足性能,可扩展和可用性目标

android 开发中如何实现让程序执行一条语句后延时一段时间后再执行下面的语句

Android中实现延时执行操作的几种方法

C# 延时处理或者暂停执行