sql >> Database >  >> RDS >> Oracle

DBMS_SCHEDULER Taak wordt elk uur uitgevoerd Voorbeeld

Dit voorbeeld laat zien hoe u een taak in Oracle kunt maken die elk uur moet worden uitgevoerd met behulp van de DBMS_SCHEDULER pakket.

1. Een taak maken met DBMS_SCHEDULER.CREATE_JOB

De volgende PL/SQL-code plant een taak die begint op 20 oktober 2019 om 01:00 uur Indiase tijd om elke dag elk uur te worden uitgevoerd. U kunt de naam van de dag verwijderen uit de parameter herhaalinterval om een ​​bepaalde dag uit te sluiten . Het taaktype is een opgeslagen procedure en zal de procedure uitvoeren die is gespecificeerd in de taakactieparameter.

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'HOURLY_JOB',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'YOUR_SCHEMA.YOUR_PROCEDURE',
   start_date         =>  '20-OCT-19 01.00.00 AM Asia/Kolkata',
   repeat_interval    =>  'FREQ=HOURLY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN', 
   end_date           =>  NULL,
   auto_drop          =>   FALSE,
   job_class          =>  'SYS.DEFAULT_JOB_CLASS',
   comments           =>  'run job every hour');
END;
/

2. De taak inschakelen

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

Uw uurlijkse DBMS_SCHEDULER taak is nu gemaakt en ingeschakeld. U kunt de tijdzone wijzigen in "Azië/Kolkata " naar een tijdzone van een land door de waarde uit de volgende query te halen:

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

Verwante tutorials:

  • Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB wordt elke dag eenmaal uitgevoerd
  1. Een PostgreSQL-gebruiker maken en deze toevoegen aan een database

  2. SQLite REPLACE-instructie

  3. Record geretourneerd door functie heeft kolommen aaneengeschakeld

  4. Gelijktijdigheid van transacties beheren met vergrendelingen in SQL Server