如何在 Oracle SQL 中更新作业中的参数
How to update a parameter in a job in Oracle SQL
我刚刚使用 SQL 开发人员内置向导创建了一个作业,我想从我的应用程序更改已创建作业的参数。
工作是每天7点启动一个存储过程。
在应用程序中我必须填写:
- 禁用:true/false
- 小时:10:00
这是我的工作和字段,我想根据应用程序中 select 编辑的内容进行更新:
我看到了两种方法:
- 使字段依赖于 table
中的值
- 创建一个更新值的 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;
/
我刚刚使用 SQL 开发人员内置向导创建了一个作业,我想从我的应用程序更改已创建作业的参数。 工作是每天7点启动一个存储过程。
在应用程序中我必须填写:
- 禁用:true/false
- 小时:10:00
这是我的工作和字段,我想根据应用程序中 select 编辑的内容进行更新:
我看到了两种方法:
- 使字段依赖于 table 中的值
- 创建一个更新值的 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;
/