The Oracle Scheduler is a free job scheduling utility that is included in the Oracle database. Youmanipulate the Oracle Scheduler through the provided PL/SQL package DBMS_SCHEDULER
Why DBMS_SCHEDULER and not DBMS_JOB?
DBMS_SCHEDULER superseded DBMS_JOB starting with Oracle 10gR1. DBMS_JOB wasmade available with Oracle 7.2 and although it still exists in 10g and 11g, no new features arebeing added to it. Oracle recommends you use DBMS_SCHEDULER in releases 10g and up.DBMS_SCHEDULER is more robust and fully-featured than DBMS_JOB. It includes thefollowing features that DBMS_JOB does not have:●Extensive logging of job runs including logging run history●Simple yet very powerful scheduling syntax●Running of jobs outside of the database on the operating system●Running of jobs on remote machines●Resource management between different classes of jobs●Use of job arguments including passing of objects into stored procedures●Privilege-based security model for jobs●Naming of jobs and comments in jobs●Stored, reusable schedules●Dependencies between job units (Job chains)●Event based jobs which run when an event is received●E-mail notifications on job events of interest●Starting a job based on arrival of a fileNote: Some of the above features were introduced in 11g.
What about cron?
cron is a job scheduling utility that is ubiquitous in Linux/Unix environments. The following aresome of the benefits that DBMS_SCHEDULER has over cron, in other words, features that crondoes not have:●Can make the execution of a job dependent on the completion of another job●Has robust resource balancing and flexible scheduling features●Can run jobs based on a database event●Has syntax that works the same regardless of the operating system●Can run status reports using the data dictionary