我们使用的是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文章,所以也许我的错误。想法?
答案 0 :(得分:0)
是的。语法中存在问题。这是Oracle的答案:
创建的作业只运行一次。如果你没有指定,也可以 属性" auto_drop"假,工作被删除后 执行。如果属性为,则auto_drop的默认值为true 未在创建作业声明中指定。
只需添加" auto_drop =>假"使工作持久。希望这有助于其他任何人遇到这个问题。