@sql varchar(8000),--要执行的命令
@serverName sysname='',--job server名
@dbname sysname='',--默认为当前的数据库名
@freqtype varchar(6)='day',--时间周期,month 月,week 周,day 日
@fsinterval int=1, --相对于每日的重复次数
@time int=170000 --开始执行时间,对于重复执行的作业,将从0点到23:59分!
variable job1 numberbegin
dbms_job.submit(:job1,'test',trunc(sysdate),'sysdate+1/86400')
end
trunc(sysdate)是零点,'sysdate+1/86400'是每秒钟一次
对了,另外我很期待你一秒一次的job把你自己的数据库搞的半死不活
将下面的存储过程名称换成实际的存储过程名称,就可以实现您要的功能的,
现为你写的,直接在pl/sql dev里面执行就行了,有啥问题再联系我。
上面一段是删除job,后面的是建立job,我写了判断语句,可以随意执行
参考oracle的 dbms_job包。
---------------------华丽丽的分割线----------------------------
DECLARE
i_count number
job_num number
BEGIN
select count(job) into i_count from user_jobs where upper(what)='存储过程名称'
if i_count>0 then
select job into job_num from user_jobs where upper(what)='存储过程名称'
dbms_job.remove(job_num)
end if
END
/
commit
DECLARE X NUMBER
BEGIN
DBMS_JOB.SUBMIT
( job => X
,what => '存储过程名称'
,next_date => to_date(to_char(sysdate+1,'yyyy-mm-dd')||' 01:00:00','yyyy-mm-dd hh24:mi:ss')
,interval => 'SYSDATE+1'
,no_parse => TRUE
)
END
/
commit
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)