工作中需要一个定时任务来抽取数据,之前采用的是dbms_job包下的过程来创建job,遇到了一些问题。找了下资料,得知oracle10g以后就推荐采用dbms_scheduler包来取代dbms_job来创建定时任务。下面简单介绍下两者的使用方法及使用过程中的一些体会。
1.先创建日志表,用于记录存储过程执行时间及结果
create table bak_job_test(date_time date,mark varchar2(200));
2.创建一个存储过程,用于创建表
create or replace procedure my_test authid current_user is
v_count number := 0;
v_mess varchar2(200) := '';
begin
select count(1) into v_count from user_tables t where t.TABLE_NAME = 'BAK_JOB_TABLES';
if v_count > 0 then
execute immediate 'drop table bak_job_tables purge';
end if;
execute immediate 'create table bak_job_tables as select * from user_tables where 1=2';
insert into