![在此处输入图片说明] [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数据库。但这项工作是手动执行的。
我如何每天定期自动运行?但如果我没有怎么办呢!
http://i.stack.imgur.com/rePVq.png
你的工作
答案 0 :(得分:2)
要手动运行,请尝试:
exec dbms_scheduler.run_job('MY_JOB',false);
要手动停止,请使用:
exec dbms_scheduler.stop_job('MY_JOB',false);
如果您的问题是如何在Oracle中调度作业,那么这是一个很大的主题(参见Documentation),但一个简单的例子是:
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查看基本属性