SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次
语法:WaitFor{Delay 'time'|Time 'time}
Delay后面的时间为延迟多少时间执行
Time后面的时间为指定何时执行,格式为"HH:MM:SS",不支持日期
例:
------指定10:00执行
Begin
waitfor time '10:00'
select * from tablename
end
-----指定等待1小时后执行
begin
waitfor delay '1:00'
select * from tablename
end
dbms_lock.sleep(n)暂停n秒后执行
一般这个包都会创建,但是权限不是默认就赋予的;还有一个重要的步骤是要给用户all on dbms_lock 权限。。
在DBA身分下
grant execute on dbms_lock to USERNAME;
放到存贮过程里
1.WAITFOR
--WAITFOR
--例等待1小时2分零3秒后才执行SELECT语句
waitfordelay'01:02:03'
select*fromemployee
--例等到晚上11点零8分后才执行SELECT语句
waitfortime'23:08:00'
select*fromemployee
本文深入探讨了SQL中的定时执行语句WaitFor及其使用方法,包括Delay和Time参数的应用实例。同时介绍了并发锁机制,特别是dbms_lock.sleep(n)函数的作用,以及如何在存储过程中实现定时执行和并发控制。重点讲解了如何通过Grant语句赋予特定用户对dbms_lock包的执行权限。
2288

被折叠的 条评论
为什么被折叠?



