• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

在oracle中使用scheduler的范例

mysql 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

欢迎进入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’;

*

本文来源gao!%daima.com搞$代*!码9网(

/

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;


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在oracle中使用scheduler的范例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址