oracle定时任务dbms_job与dbms_scheduler使用方法

本文介绍了在Oracle中使用dbms_job和dbms_scheduler创建定时任务的方法,通过示例展示了存储过程的创建和权限问题。dbms_job在调用authid current_user的存储过程时可能存在权限不足的问题,而dbms_scheduler则无需显式授权,更便于使用。同时,dbms_scheduler提供了丰富的日志记录视图,提高了管理和调试的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  工作中需要一个定时任务来抽取数据,之前采用的是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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值