![在此处输入图像描述][1]
我刚刚更新了新版本的数据库。我以前使用过 Oracle 数据库 versioyon 10。现在我安装了Oracle 11g Express版。
我在DBMS_jobs上做了三份工作。
我将其编程为每天在特定时间运行它们。 每天 01:00 在存储过程中定期运行。
begin
sys.dbms_job.submit(job => :job,
what => 'BEGIN CALL_MY_SP; END;',
next_date => to_date('24-09-2013 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'TRUNC(SYSDATE + 1) + 1/24');
commit;
end;
虽然同样的作业要运行新的Oracle数据库。但此作业是手动执行的。
如何每天定期自动运行?但是如果我不这样做呢!
https://i.stack.imgur.com/rePVq.png
你的工作
http://l1309.hizliresim.com/1f/s/sz6pg.png
要手动运行,请尝试:
exec dbms_scheduler.run_job('MY_JOB',false);
要手动停止,请使用:
exec dbms_scheduler.stop_job('MY_JOB',false);
如果你的问题是如何在 Oracle 中调度作业,这是一个很大的话题(参见 文档 ),但一个简单的例子是:
BEGIN
dbms_scheduler.create_job(
job_name=>'JOB_TEST2',
job_type=>'PLSQL_BLOCK',
job_action=>'BEGIN
dbms_lock.sleep(10);
END;',
start_date=>systimestamp,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1',
number_of_arguments=>0,
enabled=>TRUE,
comments=>'Job duration is 10 seconds, launches every minute'
);
END;
由于它是作为启用创建的,因此它将自动开始运行。 您可以查看日志 (dba_scheduler_job_run_details) 进行验证,并可以通过dba_scheduler_jobs查看基本属性