读书人

在oracle中运用scheduler的范例

发布时间: 2013-04-26 16:27:53 作者: rapoo

在oracle中使用scheduler的范例

范例源码:

-- 创建新表 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_JOBminvalue 1maxvalue 9999999999999999999999999999start with 1increment by 1cache 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;/-- 启动jobbegin   dbms_scheduler.enable('JOB_TESTJOB');end;/-- 运行jobbegin   dbms_scheduler.run_job('JOB_TESTJOB',TRUE); -- true代表同步执行end;/-- 停止jobbegin   dbms_scheduler.stop_job(job_name => 'JOB_TESTJOB',force => TRUE);end; /-- 删除jobbegin   dbms_scheduler.drop_job(job_name => 'JOB_TESTJOB',force => TRUE);end;/  -- 查询jobselect * from user_scheduler_jobs;select * from dba_scheduler_jobs; -- 查看数据select * from t_test_job;-- 删除数据delete from t_test_job;

?

读书人网 >其他数据库

热点推荐