--ORACLE 10g JOB如何创建
--1.建表
CREATE TABLE JOB_RECORD_10GTABLE
(
RECORDDATE DATE
);
COMMENT ON TABLE JOB_RECORD_10GTABLE
IS '10GJOB操作表';
COMMENT ON COLUMN JOB_RECORD_10GTABLE.RECORDDATE
IS '记录时间';
--查看记录表
SELECT * FROM JOB_RECORD_10GTABLE ORDER BY RECORDDATE DESC;
--回滚记录表
DROP TABLE JOB_RECORD_10GTABLE;
--删除记录表中的数据
DELETE FROM JOB_RECORD_10GTABLE;
--2.建存储过程
CREATE OR REPLACE PROCEDURE PRO_10GJOB_TEST
IS
BEGIN
INSERT INTO JOB_RECORD_10GTABLE VALUES(SYSDATE);
END PRO_10GJOB_TEST;
--3.建JOB
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(
JOB_NAME => 'JOB10GTEST',--生成job名称
JOB_TYPE => 'STORED_PROCEDURE',--job类型
JOB_ACTION => 'PRO_10GJOB_TEST',--job执行的程序
START_DATE => SYSDATE,--job开始执行时间
REPEAT_INTERVAL => 'FREQ=MINUTELY',--job执行频率
END_DATE => NULL,--job结束执行时间
JOB_CLASS => 'DBMS_JOB$',
ENABLED => TRUE,
AUTO_DROP => FALSE,
COMMENTS => '10G JOB 测试');--job描述
END;
--4.启动JOB
BEGIN
DBMS_SCHEDULER.ENABLE('JOB10GTEST');
END;
--5.停用JOB
BEGIN
DBMS_SCHEDULER.STOP_JOB('JOB10GTEST');
END;
--5.删除JOB
BEGIN
DBMS_SCHEDULER.DROP_JOB('JOB10GTEST');
最后给出JOB执行频率的一些参数
以下给出部分repeat_interval的写法实例,以供参考
每天 'FREQ=DAILY;INTERVAL=1'
第分钟 'FREQ=MINUTELY;INTERVAL=1'
每4小时 'FREQ=HOURLY;INTERVAL=4;BYMINUTE=0;BYSECOND=0'
每月第一天 'FREQ=DAILY;BYMONTHDAY=1'
工作日的上午7点和下午3点 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15;BYMINUTE=0;BYSECOND=0'
--1.建表
CREATE TABLE JOB_RECORD_10GTABLE
(
RECORDDATE DATE
);
COMMENT ON TABLE JOB_RECORD_10GTABLE
IS '10GJOB操作表';
COMMENT ON COLUMN JOB_RECORD_10GTABLE.RECORDDATE
IS '记录时间';
--查看记录表
SELECT * FROM JOB_RECORD_10GTABLE ORDER BY RECORDDATE DESC;
--回滚记录表
DROP TABLE JOB_RECORD_10GTABLE;
--删除记录表中的数据
DELETE FROM JOB_RECORD_10GTABLE;
--2.建存储过程
CREATE OR REPLACE PROCEDURE PRO_10GJOB_TEST
IS
BEGIN
INSERT INTO JOB_RECORD_10GTABLE VALUES(SYSDATE);
END PRO_10GJOB_TEST;
--3.建JOB
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(
JOB_NAME => 'JOB10GTEST',--生成job名称
JOB_TYPE => 'STORED_PROCEDURE',--job类型
JOB_ACTION => 'PRO_10GJOB_TEST',--job执行的程序
START_DATE => SYSDATE,--job开始执行时间
REPEAT_INTERVAL => 'FREQ=MINUTELY',--job执行频率
END_DATE => NULL,--job结束执行时间
JOB_CLASS => 'DBMS_JOB$',
ENABLED => TRUE,
AUTO_DROP => FALSE,
COMMENTS => '10G JOB 测试');--job描述
END;
--4.启动JOB
BEGIN
DBMS_SCHEDULER.ENABLE('JOB10GTEST');
END;
--5.停用JOB
BEGIN
DBMS_SCHEDULER.STOP_JOB('JOB10GTEST');
END;
--5.删除JOB
BEGIN
DBMS_SCHEDULER.DROP_JOB('JOB10GTEST');
最后给出JOB执行频率的一些参数
以下给出部分repeat_interval的写法实例,以供参考
每天 'FREQ=DAILY;INTERVAL=1'
第分钟 'FREQ=MINUTELY;INTERVAL=1'
每4小时 'FREQ=HOURLY;INTERVAL=4;BYMINUTE=0;BYSECOND=0'
每月第一天 'FREQ=DAILY;BYMONTHDAY=1'
工作日的上午7点和下午3点 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15;BYMINUTE=0;BYSECOND=0'