当前位置:Gxlcms > mysql > 在oracle中使用scheduler的范例

在oracle中使用scheduler的范例

时间:2021-07-01 10:21:17 帮助过:19人阅读

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 在oracle中使用scheduler的范例 Sql代码 -- 创建新表 create table T_TEST_JOB ( ID LONG, TEST_DATE TIMESTAMP(6) ) tablespace GBIAPS pctfree 10 initrans 1 maxtrans 255 storage ( initia

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

在oracle中使用scheduler的范例

Sql代码

-- 创建新表

create table T_TEST_JOB

ID LONG,

TEST_DATE TIMESTAMP(6)

tablespace GBIAPS

pctfree 10

initrans 1

maxtrans 255

storage

initial 64

minextents 1

maxextents unlimited

);

-- 创建序列

create sequence SEQ_TEST_JOB

minvalue 1

maxvalue 9999999999999999999999999999

start with 1

increment by 1

cache 10;

-- 创建存储过程

create or replace procedure P_TEST_JOB as

begin

insert into t_test_job(id,test_date) values (SEQ_TEST_JOB.NEXTVAL,sysdate);

end;

/

/*

在使用create_job或者create_schedule前,请先检查 NLS_DATE_LANGUAGE, NLS_DATE_FORMAT,

NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT 等参数的值, 通过alter session 命令来修改

alter session set NLS_DATE_FORMAT='yyyy-MM-dd';

alter session set NLS_TIMESTAMP_FORMAT='yyyy-MM-dd hh24:mi:ss';

alter session set NLS_TIMESTAMP_TZ_FORMAT='yyyy-MM-dd HH:MI:SS.FF AM TZR';

*/

select * from nls_session_parameters where parameter like '%_DATE_%' or parameter like '%_TIMESTAMP_%';

-- 创建job

-- FREQ 用来指定间隔的时间周期,可选参数有: YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY

-- INTERVAL 用来指定间隔的频繁,可指定的值的范围从1-999

-- 附加的参数有: BYMONTH,BYWEEKNO,BYYEARDAY,BYMONTHDAY,BYDAY,BYHOUR,BYMINUTE,BYSECOND

/*

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

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

每月1号凌晨1点执行一次

Freq=Monthly;BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0;Interval=1

*/

begin

sys.dbms_scheduler.create_job(job_name => 'JOB_TESTJOB',

job_type => 'STORED_PROCEDURE',

job_action => 'P_TEST_JOB',

start_date => sysdate,

repeat_interval => 'Freq=MINUTELY;BYSECOND=0;Interval=1',

end_date => to_date(null),

job_class => 'DEFAULT_JOB_CLASS',

enabled => true,

auto_drop => false,

comments => 'Baiyun Airport Web Site');

end;

/

-- 启动job

begin

dbms_scheduler.enable('JOB_TESTJOB');

end;

/

-- 运行job

begin

dbms_scheduler.run_job('JOB_TESTJOB',TRUE); -- true代表同步执行

end;

/

-- 停止job

begin

dbms_scheduler.stop_job(job_name => 'JOB_TESTJOB',force => TRUE);

end;

/

-- 删除job

begin

dbms_scheduler.drop_job(job_name => 'JOB_TESTJOB',force => TRUE);

end;

/

-- 查询job

select * from user_scheduler_jobs;

select * from dba_scheduler_jobs;

-- 查看数据

select * from t_test_job;

-- 删除数据

delete from t_test_job;

人气教程排行