Plsql 如何在Oracle SQL中更新作业中的参数

Plsql 如何在Oracle SQL中更新作业中的参数,plsql,oracle-apex,Plsql,Oracle Apex,我刚刚使用SQL Developer内置向导创建了一个作业,我想从我的应用程序中更改所创建作业的参数。 作业是每天7点启动一个存储过程 在应用程序中,我必须输入以下字段: 禁用:真/假 时间:10:00 这是我的工作和字段,我想根据在应用程序中选择的内容进行更新: 我看到两种方法: 使字段依赖于表中的值 创建更新值的pl/sql块 当然,我不知道怎么做(在第一个选项中,select语句不起作用,在第二个选项中,我不知道如何访问作业字段) 请帮助使用以下步骤进行基于值的动态更新 Begin d

我刚刚使用SQL Developer内置向导创建了一个作业,我想从我的应用程序中更改所创建作业的参数。 作业是每天7点启动一个存储过程

在应用程序中,我必须输入以下字段:

  • 禁用:真/假
  • 时间:10:00
  • 这是我的工作和字段,我想根据在应用程序中选择的内容进行更新:

    我看到两种方法:

  • 使字段依赖于表中的值
  • 创建更新值的pl/sql块
  • 当然,我不知道怎么做(在第一个选项中,select语句不起作用,在第二个选项中,我不知道如何访问作业字段)


    请帮助

    使用以下步骤进行基于值的动态更新

    Begin 
    dbms_scheduler.disable( 'ATOS."job_email_notifications"' );
    
    DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'ATOS."job_email_notifications"', attribute => 'repeat_interval', value => 'freq=daily;byday=FRI,SAT;byhour=20;byminute=0; bysecond=0');--change value--as per need
    
    dbms_scheduler.enable( 'ATOS."job_email_notifications"' );
    End;
    /
    
    Create or replace procedure change_attributes(a_job_name varchar2, a_param varchar2, a_new_val varchar2)
    As
    Begin 
    dbms_scheduler.disable( a_job_name);
    
    DBMS_SCHEDULER.SET_ATTRIBUTE ( name => a_job_name,attribute => a_param, value => a_new_val);
    
    dbms_scheduler.enable( a_job_name);
    End;
    /
    

    你需要删除并重新创建作业。嘿,谢谢你的回答,但是这对我不起作用,错误是:错误报告-ORA-27476:“ATOS.job\u EMAIL\u通知”不存在ORA-06512:在第2行*原因:指定的数据库对象不存在。发布以下查询的输出:从dba_调度程序_作业中选择*,其中job_name='job_EMAIL_NOTIFICATIONS';ORA-00942:表或视图不存在。可能我有不同的调度程序名称或其他名称?请尝试从所有调度程序作业中选择*,其中job_name='job_EMAIL_NOTIFICATIONS';您似乎有权查看dba视图。让我们来看看。