Oracle的Job不自动执行,但手动执行无任何的问题

    今天写了一个Oracle的job任务,但是发现没有定时执行,在plsql中手动执行这个job又是正常的,因此估计数据库本身可能存在问题,百度后得知是job_queue_process这个参数的问题。

具体方法是:

在命令窗口中执行命令:show parameter job_queue_process;

发现job_queue_process是0,查找资料得知job_queue_process参数决定了job作业能够使用的总进程数,当该参数为0值,任何job都不会被执行。

于是修改job_queue_process参数为10,命令是:alter system set job_queue_processes= 10;

job可以正常的定时执行了

转载于:https://my.oschina.net/u/2424727/blog/1832300

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库中可以通过创建定时任务的方式来执行周期性的作业。可以通过以下步骤使用`DBMS_SCHEDULER`包在Oracle中创建并执行定时任务: 1. 首先,需要创建一个程序(或存储过程或脚本)来执行任务。可以使用`CREATE OR REPLACE PROCEDURE`语句来创建一个程序,如下所示: ``` CREATE OR REPLACE PROCEDURE my_task AS BEGIN -- 执行任务的代码 END; ``` 2. 接下来,需要创建一个作业(job),指定要执行的程序、执行时间以及其他相关参数。可以使用`DBMS_SCHEDULER.CREATE_JOB`存储过程来创建作业,如下所示: ``` BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_job', job_type => 'PLSQL_BLOCK', job_action => 'begin my_task; end;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; INTERVAL=1', enabled => TRUE ); END; ``` 上述代码中,`job_name`是作业的名称,`job_type`是作业类型,这里选择了PL/SQL块,`job_action`是要执行的程序或语句,`start_date`是作业的起始时间,`repeat_interval`指定了作业的重复间隔,这里是每天执行一次,`enabled`指定作业是否启用。 3. 最后,可以使用`DBMS_SCHEDULER.RUN_JOB`存储过程手动运行作业,或者等待作业根据指定的时间自动执行。 ``` BEGIN DBMS_SCHEDULER.RUN_JOB ('my_job'); END; ``` 以上代码将手动执行名为`my_job`的作业。如果希望作业根据指定的时间自动执行,只需将`enabled`参数设置为`TRUE`即可。 需要注意的是,为了使用`DBMS_SCHEDULER`包创建和管理作业,需要拥有足够的权限,如`CREATE JOB`和`MANAGE SCHEDULER`等权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值