sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Voorbeeld

De vereiste is om een ​​taak in Oracle te creëren die dagelijks om 03:00 uur wordt uitgevoerd en voer een opgeslagen procedure uit om een ​​bepaalde taak uit te voeren. De naam van de opgeslagen procedure is bijvoorbeeld PROC_DAILY_UPDATES .

Om dit te bereiken, gebruikt het volgende voorbeeld Oracle's DBMS_SCHEDULER.CREATE_JOB procedure:

1. Maak een taak in Oracle met behulp van 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;
/

Nadat u de bovenstaande taak hebt gemaakt, schakelt u deze in:

2. Schakel de taak in met DBMS_SCHEDULER.ENABLE

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

Gebruik de volgende vraag om de gecreëerde taak te bevestigen:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Uit de bovenstaande zoekopdracht krijgt u de informatie zoals laatste startdatum, volgende uitvoeringsdatum en status van taak ingeschakeld , enz.

Gebruik de volgende query om de taakuitvoeringsgeschiedenis te krijgen:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Dat zie je ook in de bovenstaande DBMS_SCHEDULER.CREATE_JOB procedure voorbeeld, ik gebruikte de tijdzone America/New_York . U kunt de tijdzone van een specifiek land opvragen met de volgende zoekopdracht:

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

Uitvoer

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
...

Zie ook:

  • Hoe een taak plannen in Oracle SQL Developer?
  • Meer informatie over het plannen van taken/taken met Cron (crontab) in Linux
  • Ontvang de huidige lokale tijd van elk land in PL/SQL
  1. TODATETIMEOFFSET() Voorbeelden in SQL Server

  2. Toegang verlenen tot v$ views (v$session ,v$instance)

  3. Gegevens koppelen aan of importeren uit Salesforce

  4. Vind de kolommen die worden geretourneerd door een functie met tabelwaarde (T-SQL-voorbeelden)