【问题标题】:How to rename scheduler job Oracle如何重命名调度程序作业 Oracle
【发布时间】:2020-05-08 12:43:09
【问题描述】:

我想在 Oracle 中重命名调度程序作业,可以吗?

dba_scheduler_jobs(owner = "db", name = "my_job")
=> dba_scheduler_jobs(owner = "db", name = "my_own_job");

感谢您的回答。

【问题讨论】:

    标签: oracle oracle-sqldeveloper plsqldeveloper


    【解决方案1】:

    作业是一个数据库对象,因此 RENAME 命令本身就可以工作

    SQL> begin
      2    dbms_scheduler.create_job (
      3      job_name        => 'MY_BAD_NAME',
      4      job_type        => 'PLSQL_BLOCK',
      5      job_action      => 'begin null; end;',
      6      start_date      => systimestamp,
      7      repeat_interval => 'freq=hourly; byminute=0; bysecond=0;',
      8      enabled         => true);
      9  end;
     10  /
    
    PL/SQL procedure successfully completed.
    
    SQL> rename MY_BAD_NAME to BETTER_NAME;
    
    Table renamed.
    
    
    SQL> select job_name from user_scheduler_jobs;
    
    JOB_NAME
    --------------------------------------------------------------------------------
    BETTER_NAME
    

    【讨论】:

    • 您好,感谢您的回答,但它不起作用。我正在使用 pl/sql 开发人员,当然我也使用架构。当我尝试时:将对象 my_schema.my_job 重命名为 my_own_job;它以错误结束。
    • 你为什么运行'alter ... rename? Connor 展示了“将 old_job 重命名为 new_job”
    • 这是一个巧妙的技巧,但是否支持这种语法? SQL Language Reference 表示“使用 RENAME 语句重命名表、视图、序列或私有同义词。”
    • 我会为此提交一个文档错误。感谢您告知我们
    【解决方案2】:

    您可以创建/复制作业并删除旧作业,而不是重命名。

    下面,my_new_job1 已创建。

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name          =>  'my_new_job1',
       program_name      =>  'my_saved_program', 
       repeat_interval   =>  'FREQ=DAILY;BYHOUR=12',
       comments          =>  'Daily at noon');
    END;
    /
    

    下面,my_new_job2 已创建,其详细信息与 my_new_job1 相同

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name          =>  'my_new_job2',
       program_name      =>  'my_saved_program', 
       repeat_interval   =>  'FREQ=DAILY;BYHOUR=12',
       comments          =>  'Daily at noon');
    END;
    /
    

    下面的旧作业 my_new_job1 已被删除。

    BEGIN
    DBMS_SCHEDULER.DROP_JOB ('my_new_job1');
    END;
    /
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      相关资源
      最近更新 更多