A Simple Example
Suppose that I am working with a banking application and want to schedule the execution of a job that applies interest daily to the account balances. A stored procedure called apply_interest is used to apply the interest. I can use DBMS_SCHEDULER’s CREATE_JOB program to create a scheduler job named “apply_daily_interest” as follows:
1 BEGIN 2 DBMS_SCHEDULER.create_job (job_name => 'apply_daily_interest', 3 job_type => 'STORED_PROCEDURE', 4 job_action => 'apply_interest', 5 repeat_interval => 'FREQ=DAILY; INTERVAL=1', 6 enabled => TRUE, 7 comments => 'Apply Daily Interest' 8 ); 9* END;
Let’s examine the lines in detail in the following table.
Line |
Description |
2 |
I define the name of the job. The name must be a valid Oracle identifier, which means that it must start with a letter; contain some combination of letters, numbers, #, _, or $; and cannot be longer than 30 characters. The name also must be unique in the Oracle namespace; it cannot, for example, have the same name as a table. |
3 |
Here I specify what type of program is to be run. This is a wonderful enhancement of DBMS_SCHEDULER over the functionality available in DBMS_JOB. In this case, the program to be executed (apply_interest) is a stored procedure, indicated by the value (“STORED_PROCEDURE”) of the job_type parameter. Other valid values for this argument are “PLSQL_BLOCK” and “EXECUTABLE”. |
4 |
The job_action parameter indicates what this job does—in this case, it executes the stored procedure apply_interest. ... |
Get Oracle PL/SQL for DBAs now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.