日期:2014-05-16  浏览次数:20397 次

如何创建ORACLE JOB

oracle job简介
主要的使用情景

定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中,2:定时备份数据库等


熟化说万事开头难,这里我只简单记述一个创建一个简单的
job
步骤如下:

1、创建一张表
g_test
create table G_TEST
(
ID???? NUMBER(12),
C_DATE DATE
)
2
、创建一个
sequence
create sequence G_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 141
increment by 1
cache 20;

3
、创建一个存储过程

create or replace procedure prc_g_test is
begin
insert into g_test values(g_seq.nextval,sysdate);
end prc_g_test;

?

4、创建job,
使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:jobwhatnext_dateintervalno_parse


PROCEDURE Submit (
job
?????? OUT binary_ineger,
What????? IN? varchar2,
next_date IN? date,
interval? IN? varchar2,
no_parse? IN? booean:=FALSE)

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。

what
参数是将被执行的PL/SQL代码块。

next_date
参数指识何时将运行这个工作。

interval
参数何时这个工作将被重执行。

no_parse
参数指示此工作在提交时或执行时是否应进行语法分析
——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,

FALSE指示本PL/SQL代码应立即进行语法分析。


command window窗口中执行下面脚本

variable job1 number;
begin
sys.dbms_job.submit(job => :job,
what => 'prc_g_test;',
next_date => to_date('22-10-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/1440');--
每天1440分钟,即一分钟运行test过程一次

commit;
end;
/

----------------------------------------------
plSQL中我的做法是: