sql >> Databáze >  >> RDS >> Oracle

Oracle PL/SQL:Příklad DBMS_SCHEDULER.CREATE_JOB

Požadavek je vytvořit úlohu v Oracle, která se bude spouštět denně ve 3:00 a spustit uloženou proceduru k provedení určitého úkolu. Například název uložené procedury je PROC_DAILY_UPDATES .

K dosažení tohoto cíle používá následující příklad Oracle DBMS_SCHEDULER.CREATE_JOB postup:

1. Vytvořte úlohu v Oracle pomocí DBMS_SCHEDULER.CREATE_JOB

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'JOB_DAILY_UPDATES',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'YOURSCHEMA.PROC_DAILY_UPDATES',
   start_date         =>  '28-SEP-19 03.00.00 AM America/New_York',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=1', 
   end_date           =>  NULL,
   auto_drop          =>   FALSE,
   job_class          =>  'SYS.DEFAULT_JOB_CLASS',
   comments           =>  'extract data');
END;
/

Po vytvoření výše uvedené úlohy ji povolte:

2. Povolte úlohu pomocí DBMS_SCHEDULER.ENABLE

BEGIN 
    DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); 
END;
/

Pro potvrzení úspěšně vytvořené úlohy použijte následující dotaz:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Z výše uvedeného dotazu získáte informace jako datum posledního zahájení, datum dalšího spuštění a stav povolení úlohy , atd.

Chcete-li získat historii provádění úlohy, použijte následující dotaz:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Můžete si také všimnout, že ve výše uvedeném DBMS_SCHEDULER.CREATE_JOB příklad postupu, použil jsem časové pásmo America/New_York . Časové pásmo konkrétní země můžete získat pomocí následujícího dotazu:

SELECT DISTINCT tzname, TZ_OFFSET (tzname)
 FROM V$TIMEZONE_NAMES
ORDER BY tzname;

Výstup

America/Mexico_City -05:00 
America/Miquelon -02:00 
America/Moncton -03:00 
America/Monterrey -05:00 
America/Montevideo -03:00 
America/Montreal -04:00 
America/Montserrat -04:00 
America/Nassau -04:00 
America/New_York -04:00
...

Viz také:

  • Jak naplánovat úlohu v Oracle SQL Developer?
  • Zjistěte, jak plánovat úkoly/úlohy pomocí Cron (crontab) v Linuxu
  • Získejte aktuální místní čas libovolné země v PL/SQL
  1. Export databáze SQLite do souboru CSV

  2. Korupce databáze v MS Access a jak se vypořádat

  3. Vyhledejte, zda je číslo obsaženo ve výrazu jako:1-3,5,10-15,20

  4. Získejte seznam tabulek s omezením primárního klíče nebo bez něj ve všech databázích z instance SQL Server - SQL Server / Výukový program TSQL, část 61