【问题标题】:Oracle dbms_scheduler.create_job ErrorOracle dbms_scheduler.create_job 错误
【发布时间】:2014-05-05 19:22:56
【问题描述】:

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

开始 dbms_scheduler.create_job (

job_name => 'disengagementChecker',

job_type => 'PLSQL_BLOCK',

job_action => '插入到 PatientClassRelObs(patientClassID,observationTypeID) VALUES (1, 11)',

开始日期 => SYSDATE,

repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',

cmets => '我正在测试调度程序');结束;

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

ORA-06550:第 15 行,第 3 列:

PLS-00103:遇到符号 预期以下情况之一时的“文件结尾”:

;符号 “;”被替换为“文件结尾”以继续。

我不明白是什么导致了这个错误。你知道是什么导致了这个错误吗?或者为什么会这样?

提前谢谢你!

-大卫

【问题讨论】:

  • 请发布您正在使用的实际代码。您发布的内容不包含 15 行!

标签: sql oracle ora-06550 dbms-scheduler pls-00103


【解决方案1】:

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

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

更新

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

从这段代码开始,使用 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

【讨论】:

  • 感谢您的帮助,但我仍然遇到与以前相同的错误。在我可以使用 dbms_scheduler.create_job 之前,我是否需要任何导入或设置? (我是 Oracle 新手)
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2019-07-22
  • 1970-01-01
  • 2011-06-04
  • 2011-11-27
  • 1970-01-01
相关资源
最近更新 更多