0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job

--oracle job 定时执行 存储过程
--建一张测试表
create table Person(
    name varchar2(50),
    sex varchar2(10)
);
/
--创建测试的存储过程
create or replace job_procedure(pname in varchar2,psex in varchar2) as
begin
    insert into Person values(pname,psex);
end job_procedure;
/
--创建一个job任务
variable jobid number;
begin
    dbms_job.submit(:jobid,'job_procedure',sysdate,'sysdate+1/1440');--每分钟执行一次 24 * 60 = 1440;
end;
/
--运行job
begin
    dbms_job.run(:jobid);
end;
/
--删除job
begin
    dbms_job.remove(:jobid);
end;
/


---------------------------------------------------------------------------

--另一种方法    调度
--建一张测试表
create table Person(
    name varchar2(50),
    sex varchar2(10)
);
/
--创建测试的存储过程
create or replace job_procedure(pname in varchar2,psex in varchar2) as
begin
    insert into Person values(pname,psex);
    submit();--提交
end job_procedure;
/
--创建一个job任务
begin
dbms_scheduler.create_job(
    job_name => 'jobname',    
    job_type => 'STORED_PROCEDURE',
    job_action => 'job_procedure',
    start_date => sysdate,
    repeat_interval => 'FREQ=DAILY;INTERVAL=2',
    enabled => TRUE,
    comments =>  'my procedure job !'
);
end;
/
--执行job
begin
    dbms_scheduler.run_job(job_name=>'jobname');
end;
/
--删除job
begin
    dbms_scheduler.dorp_job(job_name=>'jobname');
end;
/
/*
参数说明:
job_name: 顾名思义,每个job都必须有一个的名称
schedule_name: 如果定义了计划,在这里指定计划的名称
job_type: 目前支持三种类型:
 PL/SQL块: PLSQL_BLOCK,
 存储过程: STORED_PROCEDURE
 外部程序: EXECUTABLE (外部程序可以是一个shell脚本,也可以是操作系统级别的指令).
job_action: 根据job_type的不同,job_action有不同的含义.
 如果job_type指定的是存储过程,就需要指定存储过程的名字;
 如果job_type指定的是PL/SQL块,就需要输入完整的PL/SQL代码;
 如果job_type指定的外部程序,就需要输入script的名称或者操作系统的指令名
enabled: 上面已经说过了,指定job创建完毕是否自动激活
comments: 对于job的简单说明


*/
/*
    ----------repeat_interval参数------------
repeat_interval => 'FREQ=HOURLY; INTERVAL=2'    每隔2小时运行一次job

repeat_interval => 'FREQ=DAILY'        每天运行一次job

repeat_interval => 'FREQ=WEEKLY; BYDAY=MON,WED,FRI"    每周的1,3,5运行job

repeat_interval => 'FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30'    每年的3,6,9,12月的30号运行job

*/
--如有错误,欢迎指出!!!
原文地址:https://www.cnblogs.com/jianyeLee/p/5327041.html