JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396',
REPEAT_INTERVAL => 'freq=monthly;byday=3 FRI',
ENABLED => TRUE);
END;
/
从上图可以看出一次执行时间为17年5月19日,为5月第三周的周五。
8、bymonthday_clause
语法如下:
bymonthday_clause = "BYMONTHDAY" "=" monthday_list monthday_list = monthday ( "," monthday)* monthday = [minus] monthdaynum monthdaynum = 1 through 31指定每月的第几天执行job,有效值为1-31,也可以使用"-"符号指定该月的倒数第几天。
示例:指定每月的倒数第二天执行job
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1',
JOB_TYPE => 'plsql_block',
JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396',
REPEAT_INTERVAL => 'freq=hourly;bymonthday=-2',
ENABLED => TRUE);
END;
/
如上图所示,下次执行job的时间为5月30日,为5月的倒数第2天。
9、byhour_clause、byminute_clause、bysecond_clause
语法如下:
byhour_clause = "BYHOUR" "=" hour_list hour_list = hour ( "," hour)* hour = 0 through 23 byminute_clause = "BYMINUTE" "=" minute_list minute_list = minute ( "," minute)* minute = 0 through 59 bysecond_clause = "BYSECOND" "=" second_list second_list = second ( "," second)* second = 0 through 59这些参数指定job执行时的具体的时、分、秒。
byhour指定几点,byminute指定几分,bysecond指定几秒
示例:每天1:20:30执行job
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1',
JOB_TYPE => 'plsql_block',
JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396',
REPEAT_INTERVAL => 'freq=daily;interval=1;byhour=1;byminute=20;bysecond=30',
ENABLED => TRUE);
END;
/
从上图可以看出,一次执行的时间为指定的5月16日1:20:30。
以上只介绍了部分参数,也只有部分参数给了示例,具体参数的使用可以在实际的生产过程中去尝试。