【问题标题】:scheduled job's job action exceeds 4000 characters in oracleoracle 中计划作业的作业操作超过 4000 个字符
【发布时间】:2019-12-11 17:16:52
【问题描述】:

我有一个计划的工作,我正在尝试根据新要求更新其job_action,但字符串现在超过 4000 个字符。有没有办法让job_action 超过 4000 个字符而不会出现问题?或者有什么解决办法?

【问题讨论】:

  • 有错误吗?请出示您的代码。
  • 一般来说,从维护和支持的角度来看,我想要的不仅仅是一个微不足道的匿名块,而是一个存储过程。如果我的匿名块的长度超过 4000 个字符,我真的很想转移到存储过程——这通常比我想要的单个存储过程更长,更不用说单个匿名块了。可以转移到存储过程吗?

标签: sql oracle jobs


【解决方案1】:

您必须有job_typePLSQL_BLOCK 的调度程序,这允许job_action 中包含4000 个字符。

如果您希望在作业中执行超过 4000 个字符的代码,而不是使用您的代码(超过 4000 个字符)创建 procedure,然后您需要将调度程序将 job_type 更改为 STORED_PROCEDUREjob_action 作为您新创建的过程名称。

类似于以下内容(来自 oracle 文档的示例):

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'update_sales',
   job_type           =>  'STORED_PROCEDURE', -- change needed here in your case
   job_action         =>  'OPS.SALES_PKG.UPDATE_SALES_SUMMARY', -- change needed here in your case
   start_date         =>  '28-APR-08 07.00.00 PM Australia/Sydney',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=2', /* every other day */
   end_date           =>  '20-NOV-08 07.00.00 PM Australia/Sydney',
   auto_drop          =>   FALSE,
   job_class          =>  'batch_update_jobs',
   comments           =>  'My new job');
END;
/

干杯!!

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2010-09-12
    • 2013-12-14
    • 2010-11-19
    • 2017-10-22
    • 2021-01-08
    相关资源
    最近更新 更多