首页 文章

Oracle dbms_scheduler.create_job错误

提问于
浏览
0

我试图在oracle 10g数据库中创建一个简单的预定事件 . 我一直在尝试使用dbms_scheduler.create_job . 这是我写的脚本:

begin dbms_scheduler.create_job(job_name =>'disengagementChecker',job_type =>'PLSQL_BLOCK',job_action =>'INSERT INTO PatientClassRelObs(patientClassID,observationTypeID)VALUES(1,11)',start_date => SYSDATE,repeat_interval =>'FREQ = MINUTELY; INTERVAL = 1',comments =>'Iam tesing scheduler');结束;

当我运行它时,oracle会抛出这些错误

ORA-06550:第15行,第3列:PLS-00103:当遇到以下情况之一时遇到符号“文件结束”:;符号“;”被替换为“文件结束”继续 .

我不明白什么导致这个错误 . 你知道导致这个错误的原因吗?或者为什么会这样?

先感谢您!

-大卫

1 回答

  • 0

    JOB_ACTION 必须是有效的PL / SQL块,而不仅仅是有效的SQL语句 . 用这个:

    job_action => '
      BEGIN
        INSERT INTO PatientClassRelObs(patientClassID,observationTypeID)
        VALUES (1, 11);
      END;',
    

    UPDATE

    也许这是特定环境或某些未发布的代码的问题 . 要进行故障排除,请从已知可行的方法开始,并一次添加一个小的更改,直到出现故障 .

    从这段代码开始,使用SQL * Plus .

    SQL> begin
      2     dbms_scheduler.create_job(
      3             job_name   => 'TEST_JOB',
      4             job_type   => 'PLSQL_BLOCK',
      5             job_action => 'BEGIN NULL; END;',
      6             start_date => systimestamp,
      7             enabled    => true);
      8  end;
      9  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select status, log_date from dba_scheduler_job_run_details where job_name = 'TEST_JOB';
    
    STATUS                         LOG_DATE
    ------------------------------ ---------------------------------------------------------------------------
    SUCCEEDED                      26-MAR-14 11.37.59.533000 PM -05:00
    

相关问题