`

oracle的job没有自动执行

阅读更多
今天写了一个oracle定时,发现无法运行。
第一步写存储过程代码:
create or replace procedure prc_update_tgyhxx as
begin
     insert into 团购优惠信息(集团编号) select s.集团编号 from 团购优惠信息2 s where s.集团编号 not in(select 集团编号 from 团购优惠信息);
     update 团购优惠信息 set(上月用户数,本月新增数,月末用户数,调整折扣,用户手机号码)=(select  ac.用户数1 上月用户数,ac.净增数 本月新增数,ac.净增数+ac.用户数1 月末用户数,case when ac.净增数+ac.用户数1<60 then 90 when ac.净增数+ac.用户数1>60 and ac.净增数+ac.用户数1<70 then 80 when ac.净增数+ac.用户数1>70 and ac.净增数+ac.用户数1<80 then 70 when ac.净增数+ac.用户数1>80 then 60 end 调整折扣,ac.用户手机号码 from (select aaa.集团编号 集团编号1,aaa.用户手机号码,aaa.用户数 用户数1,bbb.集团编号,bbb.净增数,bbb.用户数 from 团购优惠信息1 aaa left join 团购优惠信息2 bbb on bbb.集团编号=aaa.集团编号) ac where ac.集团编号=团购优惠信息.集团编号);
     commit;
end;


备注:其实就是执行两条sql语句,一条为insert,一条为update

第二步就是创建job,代码如下:
begin
  sys.dbms_job.submit(job => :job,
                      what => 'prc_update_tgyhxx;',
                      next_date => to_date('04-11-2010 16:14:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'TRUNC(sysdate,''mi'') + 1/ (24*60)');
  commit;
end;
/
到此完成!
备注:其实我是用【PLSQL Developer】工具创建的job,而且是每分钟执行一次job。
后来发现问题,该job竟然不执行,在上网查找资料后,我的解决方法是用sys账户以sysdba权限登录执行了以下一条语句
ALTER SYSTEM SET job_queue_processes = 20; 
commit;
问题解决,原来job_queue_processes 原来是0,在9i中,job_queue_processes默认是0,job将不能启动。所以要将其设置为大于1的整数。此参数还有另外一层意思,就是并行执行的job的个数,如果此参数设置是10,那么可以同时运行的job个数的上限就是10,假如此时你已经创建了10个job,并全都开始执行,当再创建新job的时候(且当前时间已经满足可以运行此job的时间了),那么这个job将会排队。
提示:使用
show  parameter  job_queue_process
可以查询job_queue_processes的值,但要以sysdba的权限登录且在Command Window窗口中运行,在SQL Window中运行该语句会提示语法错误。
分享到:
评论

相关推荐

    ORACLE定时任务不能自动执行的检查修复步聚

    如果设置的同时运行 job 的数量为 0,则表示 Oracle 定时任务不能自动执行。这可能是由于某个版本的 BUG 导致的。 Step 4:修改设置的同时运行 job 的数量。 输入命令:SQL&gt; ALTER SYSTEM SET JOB_QUEUE_...

    Oracle Job的用法

    综上所述,Oracle Job是一个强大的工具,能帮助数据库管理员自动化执行各种任务。通过灵活的配置,可以实现定时执行、根据事件触发、异常处理等功能,极大地提高了数据库的管理和维护效率。理解并熟练掌握这些使用...

    ORACLE如何停止一个JOB

    在Oracle数据库管理中,有时我们需要停止正在运行的JOB,这可能是由于各种原因,如发现错误、优化性能或调整资源分配。本文将详细阐述如何在Oracle中查询并停止正在运行的JOB,包括关键步骤、涉及的表与视图以及具体...

    oracle job使用详解

    Oracle Job 是 Oracle 数据库中的一个特性,用于在预定义的时间间隔自动执行 PL/SQL 块或存储过程。Oracle Job 的使用对于实现定时任务、批处理操作和维护工作至关重要。以下是对 Oracle Job 使用的详细解释: 1. *...

    oracle job

    Oracle Job是Oracle数据库中的一种调度工具,用于在指定的时间执行一系列数据库操作,如PL/SQL块、存储过程、包或操作系统命令。Oracle Job是Oracle的DBMS_SCHEDULER或之前版本中的DBMS_JOB包的一部分,它允许数据库...

    oracleJob创建脚本

    在Oracle数据库中,Job是一种用于调度定期任务的功能,常被用来自动化执行数据库管理中的各种任务,比如备份、清理临时表空间等。Job主要由`DBMS_JOB`包进行管理和控制,此包提供了提交(new job)、删除(delete job)...

    Oracle JOB 用法小结

    Oracle的JOB功能是一种定时任务调度机制,用于在数据库后台自动执行预定义的PL/SQL代码块或存储过程。以下是对Oracle JOB用法的详细总结: 首先,为了启用JOB队列,需要设置初始化参数`job_queue_processes`。通过...

    oraclejob例子

    Oracle Job是Oracle数据库中的一个核心特性,用于在预定义的时间执行特定的数据库任务,比如运行SQL脚本、数据备份、维护或性能监控等。Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler...

    ORACLE创建JOB脚本

    在Oracle数据库系统中,"JOB"是用于调度和自动化任务执行的一种功能,它允许你在预定义的时间点运行存储过程、PL/SQL块或其他数据库操作。本文将深入探讨Oracle中的JOB创建,以及如何编写和使用相应的脚本来设定定时...

    oracle job实例 测试通过

    从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...

    oracle job 创建

    Oracle Job 是 Oracle 数据库中的一个特性,用于在预定义的时间间隔自动执行数据库任务,例如运行存储过程、PL/SQL 块或者 SQL 查询。对于初学者来说,理解如何创建、运行和管理 Oracle Job 是十分重要的。 1. **...

    oracle job创建脚本

    Oracle Job是Oracle数据库中的一种调度工具,用于在指定的时间自动执行PL/SQL代码或存储过程。这在数据库管理和维护中非常有用,特别是对于定期运行的任务,如数据清理、备份、统计分析等。以下是对创建Oracle Job的...

    创建oracle job

    在Oracle数据库管理中,创建Job是一项重要的功能,可以帮助用户自动化执行一些周期性的任务,比如定期备份数据、更新统计信息等。本文将详细介绍如何在Oracle环境中创建Job,并通过具体的示例来解释各个步骤。 ####...

    oracle的job定时

    Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...

    oracle中的job的用法

    使用Job可以让一些需要周期性处理的业务逻辑自动化运行,减少编程工作量,提升执行效率和程序稳定性。在Oracle中,Job的实现依赖于Job Queue后台进程,该进程负责定时执行预定的数据库任务。 在Oracle中,一个Job由...

    oracle中JOB总结

    Oracle中的JOB是一个重要的后台机制,用于自动化执行定时任务。这些任务可以是数据库维护、数据清理、备份或者其他任何基于时间的数据库操作。Oracle数据库利用SNP(Scheduler)进程来管理和执行这些JOB。 SNP...

    Oracle中job的使用详解

    Oracle 中的 Job 是一个非常强大且灵活的功能,它允许开发者在数据库中执行计划任务,提高数据库的自动化程度和效率。那么,什么是 Oracle 中的 Job 呢? Oracle 中的 Job 是一个计划任务,它可以在指定的时间点或...

    oracle_job的创建更改及删除

    Oracle Job 是一种自动执行任务的机制,允许数据库管理员创建、更改和删除作业以实现自动执行任务。本文将对 Oracle Job 的创建、更改和删除进行详细的介绍。 创建作业 创建作业需要使用 `DBMS_JOB` 包中的 `...

    Oracle作业JOB探讨

    3. **手动触发执行**:除了等待到`NEXT_DATE`时间点自动执行外,还可以通过`dbms_job.run`函数手动触发作业的执行。 4. **监控与调整**:在实际应用中,可能需要根据实际情况动态调整作业的执行时间和间隔。这就...

    Oracle 创建 job 实例

    ### Oracle 创建 Job 实例 在 Oracle 数据库管理与开发中,创建定时任务是十分常见的需求之一。例如,可能需要每分钟将一个表中的数据更新到另一个表中,这样的任务可以通过创建 Oracle 的 Job 来实现。 #### 一、...

Global site tag (gtag.js) - Google Analytics