无法使用DBMS_SCHEDULER在Oracle Standard Edition中启用作业

时间:2015-10-02 09:10:37

标签: oracle

我们使用的是11.2 Oracle标准版,无法使用DBMS_SCHEDULER启用作业。我们遇到了一个错误吗?

$ sqlplus "/as sysdba"
...
SQL> !cat should.work.sql
begin
     dbms_scheduler.create_job(
            job_name   => 'TEST_JOB',
            job_type   => 'PLSQL_BLOCK',
            job_action => 'BEGIN NULL; END;',
            start_date => systimestamp,
            enabled    => false);
  end;
/

select job_name from dba_scheduler_jobs where job_name = 'TEST_JOB';

exec DBMS_SCHEDULER.enable('TEST_JOB');

select job_name from dba_scheduler_jobs where job_name = 'TEST_JOB';

!sleep 2

select job_name from dba_scheduler_jobs where job_name = 'TEST_JOB';

SQL> @should.work.sql

PL/SQL procedure successfully completed.

JOB_NAME
------------------------------
TEST_JOB

PL/SQL procedure successfully completed.

JOB_NAME
------------------------------
TEST_JOB

no rows selected

SQL> show errors
No errors.

我已经创建了一个SR,但是没有Metalink文章,所以也许我的错误。想法?

1 个答案:

答案 0 :(得分:0)

是的。语法中存在问题。这是Oracle的答案:

  

创建的作业只运行一次。如果你没有指定,也可以   属性" auto_drop"假,工作被删除后   执行。如果属性为,则auto_drop的默认值为true   未在创建作业声明中指定。

只需添加" auto_drop =>假"使工作持久。希望这有助于其他任何人遇到这个问题。