Как переименовать планировщик заданий Oracle - PullRequest
1 голос
/ 22 января 2020

Я хотел бы переименовать работу планировщика в Oracle, возможно ли это?

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

Спасибо за ответы.

Ответы [ 2 ]

3 голосов
/ 22 января 2020

Задание является объектом базы данных, поэтому команда 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
0 голосов
/ 24 января 2020

Вместо переименования вы можете создать / реплицировать задание и удалить старое.

Ниже создан 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;
/
...