oracle job:[1]创建oracle job
主要使用场景:定时在后台执行相关操作(如每天晚上0点将一张表的数据保存到另一 张表中 等 类似linux crontab)
实验内容:定时插入数据到一张表中
个人:oracle job最好少用,尽量使用linux crontab 执行定时任务
操作方法
- 01
创建一个简单的临时测试表 create table test_job ( id number(12), c_date date );
- 02
创建一个简单的临时序列 create sequence seq_test_job_id minvalue 1 maxvalue 9999999999999999 start with 141 increment by 1 cache 20; minvalue 表示最小值 maxvalue 自增长最大值 start with 141 表示从141开始 increment by 1 每次加1 seq_test_job_id.nextval 大小为142
- 03
创建一个存储过程 将数据插入到test_job 表中 create or replace procedure pro_test_job is begin insert into test_job values(seq_test_job_id.nextval,sysdate); end pro_test_job;
- 04
创建一个job,创建完之后,会自动运行 declare job number; begin --每天1440分钟,即一分钟运行test过程一次 sys.dbms_job.submit(job,'pro_test_job;',sysdate,'sysdate+1/1440'); end; submit()函数,有五个参数:job,what,next_date,interval与no_parse PROCEDURE Submit ( job OUT binary_ineger, What IN varchar2, next_date IN date, interval IN varchar2, no_parse IN booean:=FALSE) job 指一个job的唯一标识。 what 指 这个job需要执行的plsql语句。 next_date 指下一次何时将运行这个job。 interval 指这个job执行的频率 no_parse
- 05
检查oracle job是否正常运行 select * from job_test;
- 06
查看job select job,what,next_date,interval from dba_jobs;
- 07
手动运行job begin dbms_job.run(3); --3 表示 是dba_jobs中job列 end;
- 08
删除job begin dbms_job.remove(3); end; 注意:删除只能本用户删除,否则报错 ora-23421