【发布时间】: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
我想在 Oracle 中重命名调度程序作业,可以吗?
dba_scheduler_jobs(owner = "db", name = "my_job")
=> dba_scheduler_jobs(owner = "db", name = "my_own_job");
感谢您的回答。
【问题讨论】:
标签: oracle oracle-sqldeveloper plsqldeveloper
作业是一个数据库对象,因此 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
【讨论】:
您可以创建/复制作业并删除旧作业,而不是重命名。
下面,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;
/
【讨论】: