Oracle 延时执行问题求指教:

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

第1个回答  2013-10-25
使用dbms_lock.sleep(10);实现延时,本句子是等待10秒钟,具体想等待的时间,你可以从表中查询,再使用参数传递,即可实现。追问

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

追答

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

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

Oracle 延时执行问题求指教:
思路:存储过程P1取当前时间,取A表设置延后的时间,然后循环判断,直到达到执行存储P2的时间,则停止循环开始执行P2,最后完成P1的执行。

oracle insert into tbl ( a)VALUES ( select sum(b.steup_count) from...
select sum(b.steup_count) a from b

oracle执行任务问题,一个电脑 两个用户,该sql查询的相关表内容相同,查 ...
执行计划不一样,查询条件都不一样,明显第一个有排序操作,表是否是一个也不确定。sql语句感觉也不是同一个,这样速度能一样才怪了。

刚学oracle,怎样在sql plus里执行多条语句啊?单条语句执行没问题,看...
语句有问题 ALTER TABLE productinfo ADD remark VARCHAR2(1);ALTER TABLE productinfo MODIFY productname NUMBER(1);ALTER TABLE productinfo DROP column remark;

Oracle 延时执行问题求指教:
使用dbms_lock.sleep(10);实现延时,本句子是等待10秒钟,具体想等待的时间,你可以从表中查询,再使用参数传递,即可实现。

相似回答