精华内容
下载资源
问答
  • Oracle任务计划

    千次阅读 2009-08-19 10:34:00
    有时候我们为了某个需求需要定期的去执行一个任务或操作,那么这时我们会想到任务计划。没错,第一种方法我们可以利用系统的计划任务...下面是介绍Oracle9i的任务计划操作方法:先看一个简单例子 : 1. 创建测试表 cr


    有时候我们为了某个需求需要定期的去执行一个任务或操作,那么这时我们会想到任务计划。
    没错,第一种方法我们可以利用系统的计划任务去执行某个程序。
    如果我们是想在数据库中 定期的去处理数据,那么我们可以用数据库的计划任务。SQLserver2005 和Oracle 都有计划任务的功能。

    下面是介绍Oracle9i的任务计划操作方法:
    先看一个简单例子 :     
        
     1. 创建测试表   
         create   table   a(a   date);   


     2. 创建一个存储过程   
           create   or   replace   procedure   test   as   
             begin   
                 insert   into   a   values(sysdate);   
             end;   
     3. 创建JOB(任务计划) 

        将以下语句在SQL*PLUS或PL/SQL的command Window中执行。

     
         variable   job1   number;   
           begin   
             dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');
        --每天1440分钟,即一分钟运行test存储过程一次     
          end;   
     4. 运行JOB   
       begin   
           dbms_job.run(:job1);   
        end;   
        
     
    5. 查看执行结果    
      select   to_char(a,'yyyy/mm/dd   hh24:mi:ss')   时间   from   a;   
        
      时间   
      -------------------   
      2001/01/07   23:51:21   
      2001/01/07   23:52:22   
      2001/01/07   23:53:24   
        
      6.删除JOB   
          dbms_job.remove(:job1);   
       
        
      select   *   from   all_jobs;   -- 查看数据库系统所有任务 
        
        
     

    job的使用说明:   
        
      DBMS_JOB.SUBMIT(:jobno,//job号   
                                      'your_procedure;',//要执行的过程   
                                      trunc(sysdate)+1/24,//下次执行时间   
                                      'trunc(sysdate)+1/24+1'//每次间隔时间   
                                    );   
      删除job:dbms_job.remove(jobno);   
      修改要执行的操作:job:dbms_job.what(jobno,what);   
      修改下次执行时间:dbms_job.next_date(job,next_date);   
      修改间隔时间:dbms_job.interval(job,interval);   
      停止job:dbms.broken(job,broken,nextdate);   
      启动job:dbms_job.run(jobno);   
      例子:   
      VARIABLE   jobno   number;   
      begin   
                  DBMS_JOB.SUBMIT(:jobno,     
                                  'Procdemo;',//Procdemo为过程名称     
                                    SYSDATE,   'SYSDATE   +   1/720');   
                        commit;   
      end;   
        
      执行Oracle JOB前提:


       修改job_queue_processes的值(保证其不为0否则JOB不自动运行)   


      可通过select   *   from   v$parameter;查看其值;   


      方法1:

      startup   pfile='C:/oracle/ora90/database/initorcl.ora';   
      需要修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效  

     
      方法2:
      alter   system   set   job_queue_processes=10     
      不需要重新启动数据库就能生效,系统自动修改init.ora文件

    展开全文
  • Oracle 定时执行计划任务

    万次阅读 2015-09-23 15:18:02
    Oracle 定时执行计划任务 Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER 来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更强大的功能和更灵活的机制 管理,但DBMS_JOB ...
    Oracle 定时执行计划任务
    Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER
    来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更强大的功能和更灵活的机制
    管理,但DBMS_JOB 包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故
    接下来就先看看DBMS_JOB 包的使用方法。
    1. DBMS_JOB
    我们可以在命令窗口输入show parameter job_queue_processes 查看数据库中定时任务
    的最多并发数,一般设置为10(设置方法:alter system set job_queue_processes=10),如果
    设为0,那么数据库定时作业是不会运行的。
    oracle 定时执行job queue 的后台进程是SNP,要启动snp,首先看系统模式是否支持
    sql> alter system enable restricted session;或sql> alter system disenable restricted session;
    利用上面的命令更改系统的会话方式为disenable restricted,为snp 的启动创建条件.
    接下来我们尝试实现以下功能:每隔一分钟自动向job_test 表中插入当前的系统时间。
    1、创测试表
    create table job_test(updatetime date);
    2、创建JOB
    variable v_job_no number;
    begin
    dbms_job.submit(:v_job_no, 'insert into job_test values(sysdate);', sysdate,
    'sysdate+1/1440');
    end;
    /
    其中最后一个参数'sysdate+1/1440'表示时间间隔为每分钟。其它常用的时间间隔的
    设置如下:
    (1)如果想每天凌晨1 点执行,则此参数可设置为'trunc(sysdate)+25/24';
    (2)如果想每周一凌晨1 点执行,则此参数可设置为
    'trunc(next_day(sysdate,1))+25/24';
    (3)如果想每月1 号凌晨1 点执行,则此参数可设置为
    'trunc(last_day(sysdate))+25/24';
    (4)如果想每季度执行一次,则此参数可设置为
    'trunc(add_months(sysdate,3),'Q')+1/24';
    (5)如果想每半年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),6)+1/24';
    (6)如果想每年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),12)+1/24'。
    select * from user_jobs;--查看当前用户的调度任务
    select * from dba_jobs_running;--查看正在执行的调度任务
    select * from dba_jobs;--查看执行完的调度任务
    select * from all_jobs; -- 查看数据库系统所有任务
    实例1:
    1. 创建测试表
    create table a(a date);
    2. 创建一个存储过程
    create or replace procedure test as
    begin
    insert into a values(sysdate);
    end;
    /
    3. 创建JOB(任务计划)
    variable job1 number;
    begin
    dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');
    end;
    /
    --每天1440分钟,即一分钟运行test存储过程一次
    4. 运行JOB
    begin
    dbms_job.run(:job1);
    end;
    /
    5. 查看执行结果
    select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;
    6.删除JOB
    begin
    dbms_job.remove(:job1);
    end;
    /
    job的使用说明:
    DBMS_JOB.SUBMIT(:jobno,//job号
    'your_procedure;',//要执行的过程
    trunc(sysdate)+1/24,//下次执行时间
    'trunc(sysdate)+1/24+1'//每次间隔时间
    );
    删除job:dbms_job.remove(jobno);
    修改要执行的操作:job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);
    例子:
    VARIABLE jobno number;
    begin
    DBMS_JOB.SUBMIT(:jobno,
    'Procdemo;',//Procdemo为过程名称
    SYSDATE, 'SYSDATE + 1/720');
    commit;
    end;
    /
    描述 Interval参数值
    每天运行一次
    'SYSDATE + 1'
    每小时运行一次
    'SYSDATE + 1/24'
    每10分钟运行一次
    'SYSDATE + 10/(60*24)'
    每30秒运行一次
    'SYSDATE + 30/(60*24*60)'
    每隔一星期运行一次
    'SYSDATE + 7'
    不再运行该任务并删除它
    NULL
    每天午夜12点
    'TRUNC(SYSDATE + 1)'
    每天早上8点30分
    'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
    每星期二中午12点
    'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
    每个月第一天的午夜12点
    'TRUNC(LAST_DAY(SYSDATE ) + 1)'
    每个季度最后一天的晚上11点
    'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
    每星期六和日早上6点10分
    'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
    2. DBMS_SCHEDULER
    DBMS_SCHEDULER的功能更强大,定义更灵活,增强了与系统的交互性。可以有两种方式来定义"计划":
    1) 使用DBMS_SCHDULER.CREATE_SCHEDULE //定义一个计划,计划再调用job;
    2) 调用DBMS_SCHDULER.CREATE_JOB //过程直接定义job
    例子1:用DBMS_SCHDULER.CREATE_JOBE直接创建job
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'update_bb', //job的名字
    job_type => 'STORED_PROCEDURE', //job的类型为“执行存储过程”
    job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY', //存储过程的名字
    start_date => '28-APR-10 07.00.00 PM Australia/Sydney', //这里把时区去掉也可以!
    repeat_interval => 'FREQ=DAILY;INTERVAL=2', /* every other day */
    enabled =>true, //启动该job
    comments => 'My new job'); //注释
    END;
    /
    参数说明:
    ·job_name: 顾名思义,每个job都必须有一个的名称
    ·schedule_name: 如果定义了计划,在这里指定计划的名称
    ·job_type: 目前支持三种类型:
    ·PLSQL_BLOCK : PL/SQL块: 需要输入完整的PL/SQL代码;
    ·STORED_PROCEDURE : 存储过程: 需要指定存储过程的名字;
    ·EXECUTABLE: 外部程序: (外部程序可以是一个shell脚本,也可以是操作系统级别的指令). 需要输入script的名称或者操作系统的指令名
    ·enabled: 上面已经说过了,指定job创建完毕是否自动激活
    ·comments: 对于job的简单说明
    例子2:
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'zbb_job3',
    job_type => 'PLSQL_BLOCK', //job的类型是执行sql语句
    job_action => 'insert into bb values(1,sysdate);',
    start_date => sysdate,
    repeat_interval => 'freq = minutely; interval=1', //每分钟执行一次
    enabled => true,
    comments => 'my love');
    END;
    /
    注意: enabled 默认为false,oracle不会运行此job,所有我们需要enable它
    SQL> exec dbms_scheduler.enable ('zbb_job3');
    例子3:使用DBMS_SCHDULER.CREATE_SCHEDULE
    建立 scheduler(控制时间和频率),然后给它添加几个jobs(动作)!
    BEGIN
    DBMS_SCHEDULER.CREATE_SCHEDULE ( //创建计划任务
    schedule_name => 'zbb_schedule',
    repeat_interval => 'FREQ=MINUTELY; INTERVAL=5', //执行间隔:每5分钟
    comments => 'Every 5 MINUTS');
    END;
    /
    接下来往“zbb_schedule”里添加一个job “zbb_job2”:
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB ( //创建job 并把它加入到scheduler里面
    job_name => 'zbb_job2',
    job_type => 'PLSQL_BLOCK',
    job_action => 'insert into bb values(1,sysdate);',
    schedule_name => 'ZBB_SCHEDULE');
    END;
    /
    再往“zbb_schedule”里添加一个job “zbb_job3”:
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'zbb_job3',
    job_type => 'PLSQL_BLOCK',
    job_action => 'insert into bb values(1,sysdate);',
    schedule_name => 'ZBB_SCHEDULE');
    END;
    /
    运行“select job_name,schedule_name from user_scheduler_jobs;”可以查看到所有的job。
    也可以将“zbb_job1” 加入到 “zbb_schedule”
    SQL> begin
    2 dbms_scheduler.SET_ATTRIBUTE( //注意这里执行的是修改属性的过程
    3 name => 'zbb_job1',
    4 attribute => 'schedule_name',
    5 value => 'ZBB_SCHEDULE');
    6 end;
    7 /
    删除 job 及 scheduler:
    SQL> BEGIN
    DBMS_SCHEDULER.DROP_JOB ( //删除job;多个job间用逗号隔开
    job_name => 'zbb_job2,zbb_job3',
    force => TRUE);
    END;
    /
    如何删除scheduler:
    BEGIN
    DBMS_SCHEDULER.DROP_SCHEDULE (
    schedule_name => 'zbb_schedule',
    force => true ); // 设为true 强制;false。
    END;
    /
    如何修改job的属性(frequency:频率):
    BEGIN
    DBMS_SCHEDULER.SET_ATTRIBUTE (
    name => 'zbb_job1',
    attribute => 'repeat_interval',
    value => 'FREQ=DAILY'); //每天执行一次
    END;
    /
    jobs创建时为“disabled”状态。我们必须手动“enable”它:
    BEGIN
    DBMS_SCHEDULER.ENABLE ('job1, job2, job3, sys.jobclass1, sys.jobclass2, sys.jobclass3'); /* sys.jobclass1下的所有jobs都会被enable */END;/
    END;
    /
    查看job的状态:
    SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'MY_EMP_JOB1';
    查看Job Logs:
    SELECT JOB_NAME, OPERATION, OWNER FROM DBA_SCHEDULER_JOB_LOG;
    查看Job 运行的详细情况:
    select log_id, job_name, status, to_char(log_date, 'DD-MON-YYYY HH24:MI') log_date from dba_scheduler_job_run_detailswhere job_name = 'MY_JOB14';
    如何管理计划任务的权限:
    GRANT SCHEDULER_ADMIN TO username;GRANT CREATE JOB TO scott;
    GRANT ALTER myjob1 TO scott;GRANT MANAGE SCHEDULER TO adam;
    PLSQL举例如下:
    begin dbms_scheduler.create_job ( job_name => '测试', job_type => 'PLSQL_BLOCK', job_action => 'insert into job_test values(sysdate);', start_date => sysdate, end_date => add_months(sysdate,12000), repeat_interval => 'FREQ=MINUTELY; INTERVAL=1', enabled => true,
    comments => '定时执行计划任务' );
    end;
    以上代码可以通过在PLSQL Developer中新建Jobs轻松设定:
    参数含义如下:
    ?JOB_NAME :指定任务的名称,必选值,注意要确保指定的名称唯一。
    ?JOB_TYPE :任务执行的操作类型,必选值,有下列几个可选值:
    ?PLSQL_BLOCK :表示任务执行的是一个PL/SQL匿名块。
    ?STORED_PROCEDURE :表示任务执行的是ORACLE过程(含PL/SQL PROCEDURE和JAVA PROCEDURE)。
    ?EXECUTABLE :表示任务执行的是一个外部程序,比如说操作系统命令。
    ?CHAIN :表示任务执行的是一个CHAIN。
    ?JOB_ACTION :任务执行的操作,必选值,应与JOB_TYPE类型中指定的参数相匹配。比如说对于PL/SQL匿名块,此处就可以放置PL/SQL块的具体代表,类似DECLARE .. BEGIN ..END这类;如果是ORACLE过程,那么此处应该指定具体的过程名,注意由于任务执行,即使过程中有OUT之类参数,实际执行时也不会有输出的。
    ?START_DATE :指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE。
    ?REPEAT_INTERVAL :指定任务执行的频率,比如多长时间会被触发再次执行。本参数也可以为空,如果为空的话,就表示当前设定的任务只执行一次。 REPEAT_INTERVAL参数需要好好说说,REPEAT_INTERVAL
    展开全文
  • Oracle创建计划任务定时删除30天之前数据

    千次阅读 热门讨论 2019-01-11 16:30:56
    1.创建计划任务需要执行的存储过程 CREATE OR REPLACE PROCEDURE "PRO_INTERVAL_DELETE_LOG" AS BEGIN DELETE FROM T_SYS_LOG WHERE CZSJ < SYSDATE-30; END;  备注:SQL为删除30天之前数据...

    1.创建计划任务需要执行的存储过程

    CREATE OR REPLACE 
    PROCEDURE "PRO_INTERVAL_DELETE_LOG" AS
    BEGIN
    	DELETE FROM T_SYS_LOG WHERE CZSJ < SYSDATE-30;
    END;

      备注:SQL为删除30天之前数据,可根据自身业务编写。

    2.创建计划任务

    DECLARE   
    	DELETE_LOG_JOB NUMBER;      
    BEGIN
    	DBMS_JOB.SUBMIT(DELETE_LOG_JOB,'PRO_INTERVAL_DELETE_LOG;',SYSDATE,'TRUNC(SYSDATE+1)');
    END;

      每分钟执行:TRUNC(SYSDATE,'MI')+1/(24*60)

      每天0点执行:TRUNC(SYSDATE+1)

      每月1日0点执行:TRUNC(LAST_DAY(SYSDATE)+1)

      每年1月1日0点执行:ADD_MONTHS(TRUNC(SYSDATE,'YYYY'),12)

    3.查询所有计划任务

    SELECT * FROM USER_JOBS;

    4.运行计划任务

    BEGIN
    	DBMS_JOB.RUN(25); 
    END;

      备注:25为查询出来的JOB任务ID

    5.删除计划任务

    BEGIN 
    	DBMS_JOB.REMOVE(25); 
    END;

     

    展开全文
  • Oracle定时执行计划任务

    千次阅读 2014-08-05 11:26:38
    在日常工作中,往往有些事情是需要经常重复地做的,例如每天...下面介绍的是在Oracle数据库中如何实现定时执行计划任务Oracle在10g版本以前,计划任务用的是DBMS_JOB包,10g版本引入DBMS_SCHEDULER来替代先前的DB
    日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表、每天从数据库中提取符合条件的数据、每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就想:能不能让系统来自动定时执行计划任务?下面介绍的是在Oracle数据库中如何实现定时执行计划任务。
    Oracle在10g版本以前,计划任务用的是DBMS_JOB包,10g版本引入DBMS_SCHEDULER来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB提供了更强大的功能和更灵活的机制/管理,但DBMS_JOB包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故接下来就先看看DBMS_JOB包的使用方法。我们可以在命令窗口输入show parameter job_queue_processes查看数据库中定时任务的最多并发数,一般设置为10(设置方法:alter system set job_queue_processes=10),如果设为0,那么数据库定时作业是不会运行的。

    接下来我们尝试实现以下功能:每隔一分钟自动向job_test表中插入当前的系统时间。
    1、创测试表
    create table job_test(updatetime date);
    2、创建JOB
    variable v_job_no number;
    begin
    dbms_job.submit(:v_job_no, 'insert into job_test values(sysdate);', sysdate, 'sysdate+1/1440');
    end;
    /
    其中最后一个参数'sysdate+1/1440'表示时间间隔为每分钟。其它常用的时间间隔的设置如下:
    (1)如果想每天凌晨1点执行,则此参数可设置为'trunc(sysdate)+25/24';
    (2)如果想每周一凌晨1点执行,则此参数可设置为'trunc(next_day(sysdate,1))+25/24';
    (3)如果想每月1号凌晨1点执行,则此参数可设置为'trunc(last_day(sysdate))+25/24';
    (4)如果想每季度执行一次,则此参数可设置为'trunc(add_months(sysdate,3),'Q')+1/24';
    (5)如果想每半年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),6)+1/24';
    (6)如果想每年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),12)+1/24'。
     
    DBMS_SCHEDULER的功能更强大,定义更灵活,增强了与系统的交互性。举例如下:
     
    begin 
           dbms_scheduler.create_job (
           job_name => '测试',
           job_type => 'PLSQL_BLOCK',
           job_action => 'insert into job_test values(sysdate);',
           start_date => sysdate,
           end_date => add_months(sysdate,12000),
           repeat_interval => 'FREQ=MINUTELY; INTERVAL=1',
           enabled => true,
           comments => '定时执行计划任务'
           );
    end;
     
    以上代码可以通过在PLSQL Developer中新建Jobs轻松设定:


    参数含义如下:
    •JOB_NAME :指定任务的名称,必选值,注意要确保指定的名称唯一。
    •JOB_TYPE :任务执行的操作类型,必选值,有下列几个可选值:
      ◦PLSQL_BLOCK :表示任务执行的是一个PL/SQL匿名块。
      ◦STORED_PROCEDURE :表示任务执行的是ORACLE过程(含PL/SQL PROCEDURE和JAVA PROCEDURE)。
      ◦EXECUTABLE :表示任务执行的是一个外部程序,比如说操作系统命令。
      ◦CHAIN :表示任务执行的是一个CHAIN。
    •JOB_ACTION :任务执行的操作,必选值,应与JOB_TYPE类型中指定的参数相匹配。比如说对于PL/SQL匿名块,此处就可以放置PL/SQL块的具体代表,类似DECLARE .. BEGIN ..END这类;如果是ORACLE过程,那么此处应该指定具体的过程名,注意由于任务执行,即使过程中有OUT之类参数,实际执行时也不会有输出的。
    •START_DATE :指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE。
    •REPEAT_INTERVAL :指定任务执行的频率,比如多长时间会被触发再次执行。本参数也可以为空,如果为空的话,就表示当前设定的任务只执行一次。REPEAT_INTERVAL参数需要好好说说,REPEAT_INTERVAL参数的语法结构要复杂的多。其中最重要的是FREQ和INTERVAL两个关键字。
      ◦FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY,分别表示年、月、周、日、时、分、秒等单位。
      ◦INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-99。
    例如:REPEAT_INTERVAL=>'FREQ=DAILY;INTERVAL=1';表示每天执行一次,如果将INTERVAL改为7就表示每7天执行一次,效果等同于FREQ=WEEKLY;INTERVAL=1。
    一般来说,使用DBMS_SCHEDULER.CREATE_JOB创建一个JOB,至少需要指定上述参数中的前3项。除此之外,还可以在CREATE_JOB时,指定下列参数:
    •NUMBER_OF_ARGUMENTS :指定该JOB执行时需要附带的参数的数量,默认值为0,注意当JOB_TYPE列值为PLSQL_BLOCK或CHAIN时,本参数必须设置为0,因为上述两种情况下不支持附带参数。
    •END_DATE :指定任务的过期时间,默认值为NULL。任务过期后,任务的STATE将自动被修改为COMPLETED,ENABLED被置为FALSE。如果该参数设置为空的话,表示该任务永不过期,将一直按照REPEAT_INTERVAL参数设置的周期重复执行,直到达到设置的MAX_RUNS或MAX_FAILURES值。
    •JOB_CLASS :指定任务关联的CLASS,默认值为DEFAULT_JOB_CLASS。
    •ENABLED :指定任务是否启用,默认值为FALSE。FALSE状态表示该任务并不会被执行,除非被用户手动调用,或者用户将该任务的状态修改为TRUE。
    •AUTO_DROP :当该标志被置为TRUE时,ORACLE会在满足条件时自动删除创建的任务
      ◦任务已过期;
      ◦任务最大运行次数已达MAX_RUNS的设置值;
      ◦任务未指定REPEAT_INTERVAL参数,仅运行一次;
    •COMMENTS :设置任务的注释信息,默认值为NULL。
     
    还有一些的功能和参数没有做详细说明,可参考:
    2、DBMS_SCHEDULER 带参数JOB
    备注:创建JOB需要对应权限,创建时注意表空间以免执行不成功

    展开全文
  • 查看Oracle定时任务

    万次阅读 2018-07-31 08:20:34
    SELECT * FROM dba_jobs;  
  • 1. 查看oracle中的定时任务 select * from all_jobs; select * from dba_jobs; 2. 停止定时任务 begin dbms_job.broken(jobid,true); end;
  • ORACLE数据库操作中,有时候我们需要...这个包就能帮解决我们的定时计划任务的问题。 一. 新增job 1. job创建实例 BEGIN DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'JOB_EXWH_BPARTNER_STATIC', JOB_TYPE => 'PLSQ
  • 创建Oracle定时任务

    千次阅读 2019-05-24 10:08:42
    PLSQL创建Oracle定时任务 用语句创建 1、创建任务执行的存储过程,如名称为testJob,向测试表中插入数据,如文章开头,此处省略。 2、创建一个 定时任务 job declare job number; BEGIN DBMS_JOB.SUBMIT( ...
  • Oracle 利用系统任务计划定时备份
  • 注意:Scott用户设置定期计划任务首先要获得权限。 所以这里我们使用system用户为scott用户赋予权限(system的默认密码为manager) ① ② ③赋予scott管理员权限后点击Apply 2、设置定期计划任务 例如:每隔5...
  • Oracle定时任务

    千次阅读 2017-11-17 10:05:21
    --创建定时任务,因为一开始创建的时候少了个IS,所以我把任务名改成了SBLXZ,翻译为傻逼LXZ,LXZ就是那个傻逼的名字。 CREATE OR REPLACE PROCEDURE SBLXZ IS BEGIN DELETE FROM HUMAN_TRACE; COMMIT; END ...
  • oracle定时任务dbms_job与dbms_scheduler使用方法 2018年08月20日 13:18:20 风灵使 阅读数:111 工作中需要一个定时任务来抽取数据,之前采用的是dbms_job包下的过程来创建job,遇到了一些问题。找了下资料,得知...
  • oracle 定时任务

    千次阅读 2018-09-29 09:52:24
    Oracle创建定时任务,下面以创建一个每天凌晨3点钟执行的定时任务为实例。 1、创建定时任务 begin  sys.dbms_job.submit(job =&gt; 23,  what =&gt; 'PRO_JOB;',  next_date =&gt; to_date('10-10-...
  • oracle定时任务

    万次阅读 2008-06-04 14:24:00
    DBMS_JOB系统包是Oracle任务队列”子系统的API编程接口。DBMS_JOB包对于任务队列提供了下面这些功能:提交并且执行一个任务、改变任务的执行参数以及删除或者临时挂起任务等。DBMS_JOB包是由ORACLE_HOME目录下的...
  • ORACLE数据库查看执行计划

    千次阅读 2018-09-25 10:12:50
    基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分
  • ORACLE定时任务没有执行原因

    万次阅读 2018-04-17 08:49:08
    写定时任务 dbms_job.submit(...)执行定时任务 dbms_job.run(job num)如果以上三部分都没有报错,可存储过程没有执行出来特定的结果,可以考虑是不是因为ORACLE默认的定时任务执行范围设置太小了,首先查看一下你...
  • Oracle任务调度

    万次阅读 2012-10-16 23:53:41
     自动维护任务是定期自动执行的维护数据库的操作任务,比如说:为了查看优化器而从数据库对象中采集统计信息的任务.自动维护任务在维护窗口(maintenance window)中运行,需要预先定义运行的时间间隔。可以根据资源使用...
  • oracle定时任务的编写及查看删除

    万次阅读 2016-08-15 17:39:42
    ——查看正在执行的调度任务 select * from dba_jobs;——查看执行完的调度任务     定时器的参数说明: myjob参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作; what...
  • oracle定时任务 时间间隔

    千次阅读 2011-08-24 19:29:14
    当定义oracle定时任务时,时间间隔的定义是,一次任务的结束时刻到另一次任务的开始时刻。 例:select (TRUNC(sysdate,'mi') + 1 / (24*60)),(sysdate + 1 / (24*60)) from dual 错误:sysd
  • 查看Oracle正在执行的任务 select a.program, b.spid, c.sql_text,c.SQL_IDfrom v$session a, v$process b, v$sqlarea cwhere a.paddr = b.addrand a.sql_hash_value = c.hash_valueand a.username is not ...
  • oracle实现每天定时执行一个计划任务  创建测试表  SQL> create table a(a date);    表已创建。  创建一个自定义过程  SQL> create or replace procedure t
  • 1.首先建立一个文件夹取名为oracle_backup2.在oracle_backup文件夹下建立三个文件夹分别取名为backup和Old_backup和script3.在script文件夹下面建立3个文件分别为:exp.txt和Oracle_bakup.bat和Oracle_bakup.vbsexp....
  • oracle定时任务实例

    万次阅读 多人点赞 2013-01-27 21:32:51
    1、创建测试表 create table job_test(id ...4、查看任务id select * from dba_jobs; 5、执行任务 begin dbms_job.run(41);--41为任务的id end; 6、删除任务 begin dbms_job.remove(41); end;
  • 之前kill session的存储...突然想到一个方法,不用JOB了,直接写个BAT程序,用Windows的任务计划定时执行这个存储过程。 1、新建Session文件夹,在文件夹下创建session.sql文件,内容如下 exec kill_session; exit;
  • 查看任务 在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法: 回到顶部 1、创建任务执行的存储过程,如名称为timer,向测试表中更新数据 create or...
  • Oracle创建定时任务

    万次阅读 2017-02-20 15:44:16
    Oracle创建定时任务,下面以创建一个每天凌晨3点钟执行的定时任务为实例。 1、创建定时任务 DECLARE JOB_ID PLS_INTEGER; BEGIN SYS.DBMS_JOB.SUBMIT(JOB => JOB_ID, WHAT => 'PRO_JOB;', INTERVAL =>
  • Linux 备份 #!/bin/bash ...export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export ORACLE_BASE=/u01/app/oracle su - oracle -c “expdp admin/admin123 directory=dump dumpfile=xxx_d...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,225
精华内容 58,490
关键字:

oracle计划任务查看