Link to home
Start Free TrialLog in
Avatar of pinkuray
pinkurayFlag for India

asked on

Sending mail when dbms_scheduler job fails

I want to know how can I implement logic like sending mails or alert through mails with details when ever any job fails in my DB.

Avatar of Aaron Shilo
Aaron Shilo
Flag of Israel image

If you schedule your JOB using OEM Grid control, you have to mark at options of E-Mail notification for owner,

Please see following articles.

For scheduler: http://www.oracle-base.com/articles/10g/SchedulerEnhancements_10gR2.php#jobs_that_raise_events

You can send email from PL/SQL : http://www.oracle-base.com/articles/9i/EmailFromPLSQL9i.php

ASKER CERTIFIED SOLUTION
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

Thanks for the clarification.
Avatar of pinkuray

ASKER

what if we are going to use in in APEX ?
the only thing I want a solution is about  sending mail if any jobs fails and this is all abt APEX.

As I am scheduling it through APEX.
you'll have to modify the job after submission with the add notification procedure

the fact that the original submission came from APEX, or any other tool, is immaterial
Hello Thanks for all your information.

But I have a small issue. I don't find this procedure ADD_JOB_EMAIL_NOTIFICATION  in my DB.

My database version is 11.1.0.7.0.

as sdstuber: already told it is in 11g R2 but is there any way to include this procedure in my DB?
Or any other way to do this?
you should be connected as system / sys
No it's not there i checked it. Please find the details for DBMS_SCHEDULER package in the attached code.
"PACKAGE dbms_scheduler  AUTHID CURRENT_USER AS
"
"
"
"logging_off   CONSTANT PLS_INTEGER := 32;
"
"logging_runs  CONSTANT PLS_INTEGER := 64;
"
"logging_full  CONSTANT PLS_INTEGER := 256;
"
"
"
"-- Program/Job types
"
"-- 'PLSQL_BLOCK'
"
"-- 'STORED_PROCEDURE'
"
"-- 'EXECUTABLE'
"
"
"
"-- Metadata attributes (for a program argument)
"
"-- 'JOB_NAME'
"
"-- 'JOB_OWNER'
"
"-- 'JOB_START'
"
"-- 'WINDOW_START'
"
"-- 'WINDOW_END'
"
"
"
"-- Window Priorities
"
"-- 'HIGH'
"
"-- 'LOW'
"
"
"
"-- Constants for raise events flags
"
"
"
"job_started           CONSTANT PLS_INTEGER := 1;
"
"job_succeeded         CONSTANT PLS_INTEGER := 2;
"
"job_failed            CONSTANT PLS_INTEGER := 4;
"
"job_broken            CONSTANT PLS_INTEGER := 8;
"
"job_completed         CONSTANT PLS_INTEGER := 16;
"
"job_stopped           CONSTANT PLS_INTEGER := 32;
"
"job_sch_lim_reached   CONSTANT PLS_INTEGER := 64;
"
"job_disabled          CONSTANT PLS_INTEGER := 128;
"
"job_chain_stalled     CONSTANT PLS_INTEGER := 256;
"
"job_all_events        CONSTANT PLS_INTEGER := 511;
"
"job_over_max_dur      CONSTANT PLS_INTEGER := 512;
"
"job_run_completed     CONSTANT PLS_INTEGER :=
"
"                        job_succeeded + job_failed + job_stopped;
"
"
"
"/*************************************************************
"
" * Program Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Program attributes which can be used with set_attribute/get_attribute are:
"
"--
"
"-- program_action     - VARCHAR2
"
"--                      This is a string specifying the action. In case of:
"
"--                      'PLSQL_BLOCK': PLSQL code
"
"--                      'STORED_PROCEDURE: name of the database object
"
"--                         representing the type (optionally with schema).
"
"--                      'EXECUTABLE': Full pathname including the name of the
"
"--                         executable, or shell script.
"
"-- program_type       - VARCHAR2
"
"--                      type of program. This must be one of the supported
"
"--                      program types. Currently these are
"
"--                      'PLSQL_BLOCK', 'STORED_PROCEDURE', 'EXECUTABLE'
"
"-- comments              - VARCHAR2
"
"--                      an optional comment. This can describe what the
"
"--                      program does, or give usage details.
"
"-- number_of_arguments- PLS_INTEGER
"
"--                      the number of arguments of the program that can be set
"
"--                      by any job using it, these arguments MUST be defined
"
"--                      before the program can be enabled
"
"-- enabled            - BOOLEAN
"
"--                      whether the program is enabled or not. When the program
"
"--                      is enabled, checks are made to ensure that the program
"
"--                      is valid.
"
"
"
"-- Create a new program. The program name can be optionally qualified with a
"
"-- schema. If enabled is set to TRUE, validity checks will be performed and
"
"-- the program will be created in an enabled state if all are passed.
"
"PROCEDURE create_program(
"
"  program_name            IN VARCHAR2,
"
"  program_type            IN VARCHAR2,
"
"  program_action          IN VARCHAR2,
"
"  number_of_arguments     IN PLS_INTEGER DEFAULT 0,
"
"  enabled                 IN BOOLEAN DEFAULT FALSE,
"
"  comments                 IN VARCHAR2 DEFAULT NULL);
"
"
"
"-- Drops an existing program (or a comma separated list of programs).
"
"-- When force is set to false the program must not be
"
"-- referred to by any job.  When force is set to true, any jobs referring to
"
"-- this program will be disabled (same behavior as calling the disable routine
"
"-- on those jobs with the force option).
"
"-- Any argument information that was created for this program will be dropped
"
"-- with the program.
"
"PROCEDURE drop_program(
"
"  program_name            IN VARCHAR2,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Define an argument of a program. All arguments of a program must be defined.
"
"-- If given, the argument name must be unique for this program.
"
"-- Any argument already defined at this position will be overwritten.
"
"-- The argument type must be a valid Oracle or user-defined type.
"
"-- out_argument is reserved for future use. The default and only valid value
"
"-- is FALSE.
"
"PROCEDURE define_program_argument(
"
" program_name            IN VARCHAR2,
"
" argument_position       IN PLS_INTEGER,
"
" argument_name           IN VARCHAR2 DEFAULT NULL,
"
" argument_type           IN VARCHAR2,
"
" default_value           IN VARCHAR2,
"
" out_argument            IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Define an argument of a program without a default value.
"
"-- Any job using this program must set a value to this argument.
"
"-- See other notes for define_program_argument above.
"
"PROCEDURE define_program_argument(
"
" program_name            IN VARCHAR2,
"
" argument_position       IN PLS_INTEGER,
"
" argument_name           IN VARCHAR2 DEFAULT NULL,
"
" argument_type           IN VARCHAR2,
"
" out_argument            IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Define an argument with a default value encapsulated in an ANYDATA.
"
"-- See other notes for define_program_argument above.
"
"PROCEDURE define_anydata_argument(
"
"  program_name            IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER,
"
"  argument_name           IN VARCHAR2 DEFAULT NULL,
"
"  argument_type           IN VARCHAR2,
"
"  default_value           IN SYS.ANYDATA,
"
"  out_argument            IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Define a special metadata argument for the program. The program developer
"
"-- can retrieve specific scheduler metadata through this argument.
"
"-- Jobs cannot set values for this argument.
"
"-- valid metadata_attributes are: 'COMPLETION_CODE', 'JOB_SUBNAME','JOB_NAME',
"
"-- 'JOB_OWNER', 'JOB_START', 'WINDOW_START', 'WINDOW_END', 'EVENT_MESSAGE'
"
"-- See other notes for define_program_argument above.
"
"PROCEDURE define_metadata_argument(
"
"  program_name            IN VARCHAR2,
"
"  metadata_attribute      IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER,
"
"  argument_name           IN VARCHAR2 DEFAULT NULL);
"
"
"
"-- drop a program argument either by name or position
"
"PROCEDURE drop_program_argument (
"
"  program_name            IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER);
"
"
"
"PROCEDURE drop_program_argument (
"
"  program_name            IN VARCHAR2,
"
"  argument_name           IN VARCHAR2);
"
"
"
"/*************************************************************
"
" * Job Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Job attributes which can be used with set_attribute/get_attribute are :
"
"--
"
"-- program_name      - VARCHAR2
"
"--                     The name of a program object to use with this job.
"
"--                     If this is set, job_action, job_type and
"
"--                     number_of_arguments should be NULL
"
"-- job_action        - VARCHAR2
"
"--                     This is a string specifying the action. In case of:
"
"--                      'PLSQL_BLOCK': PLSQL code
"
"--                      'STORED_PROCEDURE': name of the database stored
"
"--                          procedure (C, Java or PL/SQL), optionally qualified
"
"--                          with a schema name).
"
"--                      'EXECUTABLE': Name of an executable of shell script
"
"--                         including the full pathname and any command-line
"
"--                         flags to it.
"
"--                     If this is set, program_name should be NULL.
"
"-- job_type          - VARCHAR2
"
"--                      type of this job. Can be any of:
"
"--                      'PLSQL_BLOCK', 'STORED_PROCEDURE', 'EXECUTABLE'
"
"--                     If this is set,program_name should be NULL
"
"-- number_of_arguments- PLS_INTEGER
"
"--                     the number of arguments if the program is inlined. If
"
"--                     this is set, program_name should be NULL.
"
"-- schedule_name     - VARCHAR2
"
"--                     The name of a schedule or window or window group to use
"
"--                     as the schedule for this job.
"
"--                     If this is set, end_date, start_date and repeat_interval
"
"--                     should all be NULL.
"
"-- repeat_interval   - VARCHAR2
"
"--                     either a PL/SQL function returning the next date on
"
"--                     which to run,or calendar syntax expression.
"
"--                     If this is set, schedule_name should be NULL.
"
"-- start_date        - TIMESTAMP WITH TIME ZONE
"
"--                     the original date on which this job was or will be
"
"--                     scheduled to start.
"
"--                     If this is set, schedule_name should be NULL.
"
"-- end_date          - TIMESTAMP WITH TIME ZONE
"
"--                     the date after which the job will no longer run (it will
"
"--                     be dropped if auto_drop is set or disabled with the
"
"--                     state changed to 'COMPLETED' if it is)
"
"--                     If this is set, schedule_name should be NULL.
"
"-- schedule_limit    - INTERVAL DAY TO SECOND
"
"--                     time in minutes after the scheduled time after which a
"
"--                     job that has not been run will be rescheduled. This is
"
"--                     only valid for repeating jobs.
"
"--                     If this is NULL, a job will never
"
"--                     be rescheduled unless it has been run (failed or
"
"--                     successfully)
"
"-- job_class         - VARCHAR2
"
"--                     the class this job is associated with.
"
"-- job_priority      - PLS_INTEGER
"
"--                     the priority of this job relative to other jobs in the
"
"--                     same class. The default is 3 and values should
"
"--                     be 1 and 5 (1 being the highest priority)
"
"-- comments           - VARCHAR2
"
"--                     an optional comment.
"
"-- max_runs          - PLS_INTEGER
"
"--                     the maximum number of consecutive times this job will be
"
"--                     allowed to be run (after this number of consecurtive
"
"--                     times it will be disabled and its state will be changed
"
"--                     to 'COMPLETED'
"
"-- job_weight        - PLS_INTEGER
"
"--                     jobs which include parallel queries should set this to
"
"--                     the number of parallel slaves they expect to spawn
"
"-- logging_level     - PLS_INTEGER
"
"--                     represents how much logging pertaining to
"
"--                     this job should be done
"
"-- max_run_duration  - INTERVAL DAY TO SECOND
"
"--                     the max time for the job to run, if the job runs for
"
"--                     longer than this interval, a job_over_max_dur event
"
"--                     will be raised (the job will not be stopped)
"
"-- max_failures      - PLS_INTEGER
"
"--                     the number of times a job can fail on consecutive
"
"--                     scheduled runs before it is automatically disabled. If
"
"--                     this is set to 0 then the job will keep running no
"
"--                     matter how often it has failed. If a job is
"
"--                     automatically disabled after having failed this number
"
"--                     of times, its state will be changed to BROKEN.
"
"-- instance_stickiness- BOOLEAN
"
"--                      If this option is set to TRUE, then for the first run
"
"--                      of the job the scheduler will choose the instance with
"
"--                      the lightest load to run this job on. Subsequent runs
"
"--                      will use the same instance that the first run used
"
"--                      (unless this instance is down). If this is FALSE then
"
"--                      the scheduler will choose the first available instance
"
"--                      to schedule the job on on all runs.
"
"-- stop_on_window_exit - BOOLEAN
"
"--                       If this job has a window or window group as a schedule
"
"--                       it will be stopped if the associated window closes, if
"
"--                       this boolean attribute is set to TRUE.
"
"-- enabled             - BOOLEAN
"
"--                       whether the job is enabled or not
"
"-- auto_drop           - BOOLEAN
"
"--                       whether the job should be dropped after having
"
"--                       completed
"
"-- restartable         - BOOLEAN
"
"--                       whether the job can be safely restarted (and should be
"
"--                       restarted in case of failure). By default this is set
"
"--                       to FALSE.
"
"
"
"-- create a job in a single call (without using an existing program or
"
"-- schedule).
"
"-- Valid values for job_type and job_action are the same as those for
"
"-- program_type and program_action. If enabled is set TRUE, it will be
"
"-- attempted to enable this job after creating it. If number_of_arguments is
"
"-- set non-zero, values must be set for each of the arguments before enabling
"
"-- the job.
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  job_type                 IN VARCHAR2,
"
"  job_action              IN VARCHAR2,
"
"  number_of_arguments     IN PLS_INTEGER              DEFAULT 0,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  repeat_interval         IN VARCHAR2                 DEFAULT NULL,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- create a job using inlined program and inlined event schedule.
"
"-- If enabled is set TRUE, it will be attempted to enable this job after
"
"-- creating it.
"
"-- Values must be set for each argument of the program that does not have a
"
"-- default_value specified (before enabling the job).
"
"-- Note that there are no defaults for event_condition and queue_spec. They
"
"-- must be set explicitly to create an event based job.
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  job_type                 IN VARCHAR2,
"
"  job_action              IN VARCHAR2,
"
"  number_of_arguments     IN PLS_INTEGER              DEFAULT 0,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  event_condition         IN VARCHAR2,
"
"  queue_spec              IN VARCHAR2,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- create a job using a named schedule object and a named program object.
"
"-- If enabled is set TRUE, it will be attempted to enable this job after
"
"-- creating it.
"
"-- Values must be set for each argument of the program that does not have a
"
"-- default_value specified (before enabling the job).
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  program_name            IN VARCHAR2,
"
"  schedule_name           IN VARCHAR2,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- create a job using a named program object and an inlined schedule
"
"-- If enabled is set TRUE, it will be attempted to enable this job after
"
"-- creating it.
"
"-- Values must be set for each argument of the program that does not have a
"
"-- default_value specified (before enabling the job).
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  program_name            IN VARCHAR2,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  repeat_interval         IN VARCHAR2                 DEFAULT NULL,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- create a job using named program and inlined event schedule.
"
"-- If enabled is set TRUE, it will be attempted to enable this job after
"
"-- creating it.
"
"-- Values must be set for each argument of the program that does not have a
"
"-- default_value specified (before enabling the job).
"
"-- Note that there are no defaults for event_condition and queue_spec. They
"
"-- must be set explicitly to create an event based job.
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  program_name            IN VARCHAR2,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  event_condition         IN VARCHAR2,
"
"  queue_spec              IN VARCHAR2,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- create a job using a named schedule object and an inlined program
"
"-- Valid values for job_type and job_action are the same as those for
"
"-- program_type and program_action. If enabled is set TRUE, it will be
"
"-- attempted to enable this job after creating it. If number_of_arguments is
"
"-- set non-zero, values must be set for each of the arguments before enabling
"
"-- the job.
"
"PROCEDURE create_job(
"
"  job_name                IN VARCHAR2,
"
"  schedule_name           IN VARCHAR2,
"
"  job_type                 IN VARCHAR2,
"
"  job_action              IN VARCHAR2,
"
"  number_of_arguments     IN PLS_INTEGER              DEFAULT 0,
"
"  job_class               IN VARCHAR2              DEFAULT 'DEFAULT_JOB_CLASS',
"
"  enabled                 IN BOOLEAN                  DEFAULT FALSE,
"
"  auto_drop               IN BOOLEAN                  DEFAULT TRUE,
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- Run a job immediately. If use_current_session is TRUE the job is run in the
"
"-- user's current session. If use_current_session is FALSE the job is run in the
"
"-- background by a dedicated job slave.
"
"PROCEDURE run_job(
"
"  job_name                IN VARCHAR2,
"
"  use_current_session     IN BOOLEAN DEFAULT TRUE);
"
"
"
"-- Stop a job or several jobs that are currently running. Job name can also be
"
"-- the name of a job class or a comma-separated list of jobs.
"
"-- If the force option is not specified this will interrupt the job
"
"-- by sending an equivalent of a Ctrl-C to the job. If this fails, an error
"
"-- will be returned.
"
"-- If the force option is specified the job slave will be terminated. Use of
"
"-- the force option requires the MANAGE SCHEDULER system privilege
"
"PROCEDURE stop_job(
"
"  job_name                IN VARCHAR2,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Copy a job. The new_job will contain all the attributes of the old_job,
"
"-- except that it will be created disabled. The state of the old_job will not
"
"-- be altered.
"
"PROCEDURE copy_job(
"
"  old_job                 IN VARCHAR2,
"
"  new_job                 IN VARCHAR2);
"
"
"
"-- Drop a job or several jobs.  Job name can also be
"
"-- the name of a job class or a comma-separated list of jobs.
"
"-- If force is true, all running instances of the job will be stopped by
"
"-- calling stop_job with force set to false. If force is
"
"-- false, dropping a job with running instances will fail.
"
"PROCEDURE drop_job(
"
"  job_name                IN VARCHAR2,
"
"  force                   IN BOOLEAN      DEFAULT FALSE);
"
"
"
"-- Set a value to be passed to one of the arguments of the program (either
"
"-- named, or inlined). If program is inlined, only setting by position is
"
"-- supported. The passed value will override any default value set during
"
"-- definition of the program argument and overwrite any value previously set
"
"-- for this argument position for this job (the previous value will be lost).
"
"PROCEDURE set_job_argument_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER,
"
"  argument_value          IN VARCHAR2);
"
"
"
"-- This refers to a program argument by its name. It can only be used if the
"
"-- job is using a named program (i.e. program_name points to an existing
"
"-- program). The argument_name used must be the same name defined by the
"
"-- program.
"
"PROCEDURE set_job_argument_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_name           IN VARCHAR2,
"
"  argument_value          IN VARCHAR2);
"
"
"
"-- Same as above but accepts the default value encapsulated in an AnyData
"
"PROCEDURE set_job_anydata_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER,
"
"  argument_value          IN SYS.ANYDATA);
"
"
"
"-- This refers to a program argument by its name. It can only be used if the
"
"-- job is using a named program (i.e. program_name points to an existing
"
"-- program). The argument_name used must be the same name defined by the
"
"-- program.
"
"PROCEDURE set_job_anydata_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_name           IN VARCHAR2,
"
"  argument_value          IN SYS.ANYDATA);
"
"
"
"-- Clear a previously set job argument value. All job specific value
"
"-- information for this argument is erased. The job will revert back to the
"
"-- default value for this argument as defined by the program (if any).
"
"PROCEDURE reset_job_argument_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_position       IN PLS_INTEGER);
"
"
"
"-- This refers to a program argument by its name. It can only be used if the
"
"-- job is using a named program (i.e. program_name points to an existing
"
"-- program). The argument_name used must be the same name defined by the
"
"-- program.
"
"PROCEDURE reset_job_argument_value(
"
"  job_name                IN VARCHAR2,
"
"  argument_name           IN VARCHAR2);
"
"
"
"/*************************************************************
"
" * Job Class Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Job Class attributes which can be used with set_attribute/get_attribute are:
"
"--
"
"-- resource_consumer_group - VARCHAR2
"
"--                       resource consumer group a class is associated with
"
"-- service             - VARCHAR2
"
"--                       The service the job class belongs to. Default is NULL,
"
"--                       which implies the default service. This should be the
"
"--                       name of the service database object and not the
"
"--                       service name as defined in tnsnames.ora .
"
"-- log_purge_policy    - VARCHAR2
"
"--                       The policy for purging of scheduler log table entries
"
"--                       pertaining to jobs belonging to this class. By default
"
"--                       log table entries are not purged.
"
"-- comments             - VARCHAR2
"
"--                       an optional comment about the class.
"
"
"
"-- Create a job class.
"
"PROCEDURE create_job_class(
"
"  job_class_name          IN VARCHAR2,
"
"  resource_consumer_group IN VARCHAR2     DEFAULT NULL,
"
"  service                 IN VARCHAR2     DEFAULT NULL,
"
"  logging_level           IN PLS_INTEGER  DEFAULT DBMS_SCHEDULER.LOGGING_RUNS,
"
"  log_history             IN PLS_INTEGER  DEFAULT NULL,
"
"  comments                IN VARCHAR2     DEFAULT NULL);
"
"
"
"-- Drop a job class (or a comma-separated list of classes). This will return
"
"-- an error if force is set to FALSE and
"
"-- there are still jobs (in any state) that are part of this class.
"
"-- If force is set to TRUE, all jobs that are part of this class will be
"
"-- disabled and their class will be set to the default class.
"
"PROCEDURE drop_job_class(
"
"  job_class_name              IN VARCHAR2,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"/*************************************************************
"
" * System Window Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- System window attributes that can be used with set_attribute/get_attribute
"
"-- are:
"
"--
"
"-- resource_plan       - VARCHAR2
"
"--                       the resource plan to be associated with a window.
"
"--                       When the window opens, the system will switch to
"
"--                       using this resource plan. When the window closes, the
"
"--                       original resource plan will be restored. If a
"
"--                       resource plan has been made active with the force
"
"--                       option, no resource plan switch will occur.
"
"-- window_priority     - VARCHAR2
"
"--                       The priority of the window. Must be one of
"
"--                       'LOW' (default) , 'HIGH'.
"
"-- duration            - INTERVAL DAY TO SECOND
"
"--                       The duration of the window in minutes.
"
"-- schedule_name       - VARCHAR2
"
"--                       The name of a schedule to use with this window. If
"
"--                       this is set, start_date, end_date and repeat_interval
"
"--                       must all be NULL.
"
"-- repeat_interval     - VARCHAR2
"
"--                       A string using the calendar syntax. PL/SQL date
"
"--                       functions are not allowed
"
"--                       If this is set, schedule_name must be NULL
"
"-- start_date          - TIMESTAMP WITH TIME ZONE
"
"--                       next date on which this window is scheduled to open.
"
"--                       If this is set, schedule_name must be NULL.
"
"-- end_date            - TIMESTAMP WITH TIME ZONE
"
"--                       the date after which the window will no longer open.
"
"--                       If this is set, schedule_name must be NULL.
"
"-- enabled             - BOOLEAN
"
"--                       whether the window is enabled or not
"
"-- comments             - VARCHAR2
"
"--                       an optional comment about the window.
"
"-- The below attribute is only visible through the views and not to
"
"-- get_attribute or set_attribute
"
"-- schedule_type     - VARCHAR2
"
"--                     will be one of: 'CALENDAR_STRING', 'NAMED'
"
"
"
"-- Create a system window using a named schedule object. The specified
"
"-- schedule must exist.
"
"PROCEDURE create_window(
"
"  window_name             IN VARCHAR2,
"
"  resource_plan            IN VARCHAR2,
"
"  schedule_name           IN VARCHAR2,
"
"  duration                IN INTERVAL DAY TO SECOND,
"
"  window_priority         IN VARCHAR2                 DEFAULT 'LOW',
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- Create a system window using an inlined schedule.
"
"-- repeat_interval must use the calendar syntax. PL/SQL date functions are not
"
"-- allowed.
"
"PROCEDURE create_window(
"
"  window_name             IN VARCHAR2,
"
"  resource_plan           IN VARCHAR2,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  repeat_interval         IN VARCHAR2,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
"
"  duration                IN INTERVAL DAY TO SECOND,
"
"  window_priority         IN VARCHAR2                 DEFAULT 'LOW',
"
"  comments                 IN VARCHAR2                 DEFAULT NULL);
"
"
"
"-- Drops a scheduler system window. Window name can also be a window group (in
"
"-- which case all the windows in that window group are dropped) or a
"
"-- comma-separated list of windows. Dropping a window disables all jobs which
"
"-- use the window as a schedule (leaving currently running jobs running). If
"
"-- the window is open, dropping it will attempt to close it first
"
"-- The window is also dropped from any referring window groups.
"
"PROCEDURE drop_window(
"
"  window_name             IN VARCHAR2,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Immediately opens a scheduler window independent of its specified schedule.
"
"-- The window will be opened for the specified duration. If the duration is
"
"-- null, the window will be opened for the duration as specified when the
"
"-- window was created.
"
"-- The next open time of the window is not updated, and will be as determined
"
"-- by the regular scheduled opening.
"
"-- Opening of the window will fail if the DBA has blocked the scheduler from
"
"-- switching to a different resource plan.
"
"-- If force option not specified and a current window is active the operation
"
"-- will fail, unless the window is the current open window.
"
"-- If the current open window equals window_name, the closing time  is set to
"
"-- the system date plus the given duration, i.e. the closing time of the
"
"-- current window is moved up or down, but no jobs are stopped.
"
"PROCEDURE open_window(
"
"  window_name             IN VARCHAR2,
"
"  duration                IN INTERVAL DAY TO SECOND,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Prematurely closes the currently active window. This premature closing
"
"-- of a window will have the same effect as a regular close e.g. any jobs that
"
"-- have a window or a window group as their schedule and were started at the
"
"-- beginning of this window because of that schedule and have indicated that
"
"--they must be stopped on closing of the window, will be stopped.
"
"PROCEDURE close_window(
"
"  window_name             IN VARCHAR2);
"
"
"
"/*************************************************************
"
" * System Window Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- enable and disable can be used on window groups. They disable/enable the
"
"-- window group as a whole, not the individual windows in the group.
"
"--
"
"-- member_list refers to a comma-separated list of windows
"
"-- Window groups cannot contain other window groups.
"
"
"
"-- Creates a window group optionally containing windows specified in
"
"-- member_list.
"
"PROCEDURE create_window_group(
"
"  group_name             IN VARCHAR2,
"
"  window_list            IN VARCHAR2 DEFAULT NULL,
"
"  comments               IN VARCHAR2 DEFAULT NULL);
"
"
"
"-- Adds a window (or comma-separated list of windows) to a window group.
"
"-- If a window is already in the window group, it will not be added again.
"
"PROCEDURE add_window_group_member(
"
"  group_name             IN VARCHAR2,
"
"  window_list            IN VARCHAR2);
"
"
"
"-- Removes a window (or comma-separated list of windows) from a window group.
"
"PROCEDURE remove_window_group_member(
"
"  group_name             IN VARCHAR2,
"
"  window_list            IN VARCHAR2);
"
"
"
"-- Drops a window group (does not drop windows that are members of this group)
"
"-- Returns an error when force is set to false and there are jobs whose
"
"-- schedule is the name of the window group. If force is set to true, any jobs
"
"-- whose schedule is the name of the window group will be disabled.
"
"PROCEDURE drop_window_group(
"
"  group_name             IN VARCHAR2,
"
"  force                  IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Get scheduler default time and timezone.
"
"-- This would be used for jobs without a start time specified.
"
"-- Follow default timezone can be set to simulate an object with
"
"-- this attribute set (i.e system windows etc).
"
"FUNCTION stime (
"
"        follow_default_timezone BOOLEAN DEFAULT FALSE)
"
"        RETURN TIMESTAMP WITH TIME ZONE;
"
"
"
"-- Internal.
"
"-- Used for initializing the scheduler default timezone.
"
"FUNCTION get_sys_time_zone_name  RETURN VARCHAR2;
"
"
"
"/*************************************************************
"
" * Schedule Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Schedule attributes which can be used with set_attribute/get_attribute are :
"
"--
"
"-- repeat_interval   - VARCHAR2
"
"--                     an expression using the calendar syntax
"
"-- comments          - VARCHAR2
"
"--                     an optional comment.
"
"-- end_date          - TIMESTAMP WITH TIME ZONE
"
"--                     cutoff date after which the schedule will not specify
"
"--                     any dates
"
"-- start_date        - TIMESTAMP WITH TIME ZONE
"
"--                     start or reference date used by the calendar syntax
"
"--
"
"-- Schedules cannot be enabled and disabled.
"
"
"
"-- Create a named schedule. This must be a valid schedule.
"
"PROCEDURE create_schedule(
"
"  schedule_name           IN VARCHAR2,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE  DEFAULT NULL,
"
"  repeat_interval         IN VARCHAR2,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE  DEFAULT NULL,
"
"  comments                IN VARCHAR2                  DEFAULT NULL);
"
"
"
"--- Import helper function.
"
"PROCEDURE disable1_calendar_check;
"
"
"
"-- Create a named event schedule. This must be a valid schedule.
"
"PROCEDURE create_event_schedule(
"
"  schedule_name           IN VARCHAR2,
"
"  start_date              IN TIMESTAMP WITH TIME ZONE  DEFAULT NULL,
"
"  event_condition         IN VARCHAR2,
"
"  queue_spec              IN VARCHAR2,
"
"  end_date                IN TIMESTAMP WITH TIME ZONE  DEFAULT NULL,
"
"  comments                IN VARCHAR2                  DEFAULT NULL);
"
"
"
"-- Drop a schedule (or comma-separated list of schedules). When force is set
"
"-- to false, and there are jobs or windows
"
"-- that point to this schedule an error will be raised.
"
"-- If force is set to true, any jobs or windows pointing to this schedule will
"
"-- be disabled before the schedule is dropped.
"
"-- Schedules may refer to day calendar schedules in which case no checking
"
"-- occurs. Thus for day calendar drops  force is always assumed true,
"
"-- even if specified as false.
"
"PROCEDURE drop_schedule(
"
"  schedule_name           IN VARCHAR2,
"
"  force                   IN BOOLEAN      DEFAULT FALSE);
"
"
"
"/*************************************************************
"
" * Chain Administration Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Chain attributes which can be used with set_attribute/get_attribute
"
"-- are :
"
"--
"
"-- comments            - VARCHAR2
"
"--                       an optional comment.
"
"-- evaluation_interval - INTERVAL DAY TO SECOND
"
"--                       interval between periodic re-evaluations of a
"
"--                       running chain
"
"--
"
"
"
"-- Creates a chain.
"
"-- Chains are created disabled and must be enabled before use.
"
"PROCEDURE create_chain(
"
"  chain_name              IN VARCHAR2,
"
"  rule_set_name           IN VARCHAR2   DEFAULT NULL,
"
"  evaluation_interval     IN INTERVAL DAY TO SECOND DEFAULT NULL,
"
"  comments                IN VARCHAR2   DEFAULT NULL);
"
"
"
"-- adds or replaces a chain rule
"
"PROCEDURE define_chain_rule(
"
"  chain_name              IN VARCHAR2,
"
"  condition               IN VARCHAR2,
"
"  action                  IN VARCHAR2,
"
"  rule_name               IN VARCHAR2 DEFAULT NULL,
"
"  comments                IN VARCHAR2 DEFAULT NULL);
"
"
"
"-- adds or replaces a chain step and associates it with a program
"
"-- or chain
"
"PROCEDURE define_chain_step(
"
"  chain_name              IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  program_name            IN VARCHAR2);
"
"
"
"-- adds or replaces a chain step and associates it with an event schedule
"
"PROCEDURE define_chain_event_step(
"
"  chain_name              IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  event_schedule_name     IN VARCHAR2,
"
"  timeout                 IN INTERVAL DAY TO SECOND DEFAULT NULL);
"
"
"
"-- adds or replaces a chain step and associates it with an inline event
"
"PROCEDURE define_chain_event_step(
"
"  chain_name              IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  event_condition         IN VARCHAR2,
"
"  queue_spec              IN VARCHAR2,
"
"  timeout                 IN INTERVAL DAY TO SECOND DEFAULT NULL);
"
"
"
"-- drops a chain rule
"
"PROCEDURE drop_chain_rule(
"
"  chain_name              IN VARCHAR2,
"
"  rule_name               IN VARCHAR2,
"
"  force                   IN BOOLEAN  DEFAULT FALSE);
"
"
"
"-- drops a chain step
"
"PROCEDURE drop_chain_step(
"
"  chain_name              IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  force                   IN BOOLEAN  DEFAULT FALSE);
"
"
"
"-- alters steps of a chain
"
"PROCEDURE alter_chain(
"
"  chain_name              IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  attribute               IN VARCHAR2,
"
"  value                   IN BOOLEAN);
"
"
"
"-- drops a chain
"
"PROCEDURE drop_chain(
"
"  chain_name              IN VARCHAR2,
"
"  force                   IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- analyzes a chain or a list of steps and rules and outputs a list of
"
"-- chain dependencies
"
"PROCEDURE analyze_chain(
"
"chain_name  IN VARCHAR2,
"
"rules       IN sys.scheduler$_rule_list,
"
"steps       IN sys.scheduler$_step_type_list,
"
"step_pairs  OUT sys.scheduler$_chain_link_list);
"
"
"
"-- alters steps of a running chain
"
"PROCEDURE alter_running_chain(
"
"  job_name                IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  attribute               IN VARCHAR2,
"
"  value                   IN BOOLEAN);
"
"
"
"-- alters steps of a running chain
"
"PROCEDURE alter_running_chain(
"
"  job_name                IN VARCHAR2,
"
"  step_name               IN VARCHAR2,
"
"  attribute               IN VARCHAR2,
"
"  value                   IN VARCHAR2);
"
"
"
"-- forces immediate evaluation of a running chain
"
"PROCEDURE evaluate_running_chain(
"
"  job_name                IN VARCHAR2);
"
"
"
"-- immediately runs a job pointing to a chain starting with a list of
"
"-- specified steps. The job will be started in the background.
"
"-- If start_steps is NULL, the chain is run from the beginning.
"
"PROCEDURE run_chain(
"
"  chain_name              IN VARCHAR2,
"
"  start_steps             IN VARCHAR2,
"
"  job_name                IN VARCHAR2 DEFAULT NULL);
"
"-- immediately runs a job pointing to a chain starting with the given
"
"-- list of step states. The job will be started in the background.
"
"-- If step_state_list is NULL, the chain is run from the beginning.
"
"PROCEDURE run_chain(
"
"  chain_name              IN VARCHAR2,
"
"  step_state_list         IN SYS.SCHEDULER$_STEP_TYPE_LIST,
"
"  job_name                IN VARCHAR2 DEFAULT NULL);
"
"
"
"/*************************************************************
"
" * Generic Procedures
"
" *************************************************************
"
" */
"
"
"
"-- Disable a program, chain, job, window or window_group.
"
"-- The procedure will NOT return an error if the object was already disabled.
"
"-- It will return an error when force is set to false and:
"
"--   name points to a program and there are jobs/chains pointing to the program
"
"--   name points to a chain and there are jobs/chains pointing to the chain
"
"--   name points to a window or window group and a job has that object as its
"
"--     schedule
"
"-- The only purpose of the force option is to point out dependencies. No
"
"-- dependent objects are altered.
"
"PROCEDURE disable(
"
"  name                   IN VARCHAR2,
"
"  force                  IN BOOLEAN DEFAULT FALSE);
"
"
"
"-- Enable a program, chain, job, window or window group. The procedure will NOT
"
"-- return an error if the object was already enabled.
"
"PROCEDURE enable(
"
"  name                  IN VARCHAR2);
"
"
"
"-- Set an attribute of a scheduler object. Name can be the name of a program,
"
"-- schedule, job, window, or job class. The procedure is overloaded to accept
"
"-- different datatypes.
"
"-- number types are implicitly converted to varchar2
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN BOOLEAN);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN VARCHAR2,
"
"  value2                IN VARCHAR2 DEFAULT NULL);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN DATE);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN TIMESTAMP);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN TIMESTAMP WITH TIME ZONE);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN TIMESTAMP WITH LOCAL TIME ZONE);
"
"PROCEDURE set_attribute(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2,
"
"  value                 IN INTERVAL DAY TO SECOND);
"
"
"
"-- Set an attribute of a scheduler program to NULL
"
"-- This is necessary because the overloading above does not allow NULL
"
"-- as a valid value.
"
"PROCEDURE set_attribute_null(
"
"  name                  IN VARCHAR2,
"
"  attribute             IN VARCHAR2);
"
"
"
"-- Get the value of an attribute of a program, schedule, job, window, or job
"
"-- class. The procedure is overloaded to support different datatypes for the
"
"-- attribute values: PLS_INTEGER, BOOLEAN,VARCHAR2, all date types.
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT PLS_INTEGER);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT BOOLEAN);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT DATE);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT TIMESTAMP);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT TIMESTAMP WITH TIME ZONE);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT TIMESTAMP WITH LOCAL TIME ZONE);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT INTERVAL DAY TO SECOND);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT VARCHAR2);
"
"PROCEDURE get_attribute(
"
"  name                  IN  VARCHAR2,
"
"  attribute             IN  VARCHAR2,
"
"  value                 OUT VARCHAR2,
"
"  value2                OUT VARCHAR2);
"
"
"
"/*************************************************************
"
" * Special Scheduler Administrative Procedures
"
" *************************************************************
"
" */
"
"
"
"-- There are several scheduler attributes that control the behavior of the
"
"-- scheduler. These have defaults but a DBA may wish to change the default
"
"-- settings or view the current settings. These two functions are provided for
"
"-- this purpose.
"
"-- Even though the scheduler attributes have different types (e.g. strings,
"
"-- numbers) all the values are passed as string literals. The set
"
"-- procedure requires the MANAGE SCHEDULER privilege.
"
"-- This takes effect immediately, but the resulting changes may not be seen
"
"-- immediately.
"
"-- Attributes which may be set are:
"
"-- 'MAX_SLAVE_PROCESSES'(pls_integer), 'DEFAULT_LOG_PURGE_POLICY'(varchar2),
"
"-- 'LOG_HISTORY' (pls_integer)
"
"
"
"-- Set the value of a scheduler attribute. This takes effect immediately,
"
"-- but the resulting changes may not be seen immediately.
"
"PROCEDURE set_scheduler_attribute(
"
"  attribute          IN VARCHAR2,
"
"  value              IN VARCHAR2);
"
"
"
"-- Get the value of a scheduler attribute.
"
"PROCEDURE get_scheduler_attribute(
"
"  attribute          IN VARCHAR2,
"
"  value             OUT VARCHAR2);
"
"
"
"PROCEDURE add_event_queue_subscriber(
"
"  subscriber_name    IN VARCHAR2 DEFAULT NULL);
"
"
"
"PROCEDURE remove_event_queue_subscriber(
"
"  subscriber_name    IN VARCHAR2 DEFAULT NULL);
"
"
"
"-- The following procedure purges from the logs based on the arguments
"
"-- The default is to purge all entries
"
"PROCEDURE purge_log(
"
"  log_history        IN PLS_INTEGER DEFAULT 0,
"
"  which_log          IN VARCHAR2    DEFAULT 'JOB_AND_WINDOW_LOG',
"
"  job_name           IN VARCHAR2    DEFAULT NULL);
"
"
"
"
"
"/*************************************************************
"
" * Auxiliary Functions and Procedures
"
" *************************************************************
"
" */
"
"
"
"-- This function returns a unique name for a job.
"
"-- If prefix is NULL this will be a number from a sequence, otherwise
"
"-- it will be of the form {prefix}N where N is a number from a sequence.
"
"FUNCTION generate_job_name(
"
"  prefix            IN VARCHAR2 DEFAULT 'JOB$_') RETURN VARCHAR2 ;
"
"
"
"-- These functions are for internal scheduler use.
"
"FUNCTION check_sys_privs RETURN PLS_INTEGER ;
"
"
"
"FUNCTION get_varchar2_value (a SYS.ANYDATA) RETURN VARCHAR2;
"
"
"
"-- The following procedure purges from the logs based on class and global
"
"-- log_history
"
"PROCEDURE auto_purge;
"
"
"
"-- This accepts an attribute name and returns the default value.
"
"-- If the attribute is not recognized it returns NULL.
"
"-- If the attribute is of type BOOLEAN, it will return 'TRUE' or 'FALSE'.
"
"FUNCTION get_default_value (attribute_name VARCHAR2) RETURN VARCHAR2 ;
"
"
"
"-- this is used by chain views to output rule actions
"
"FUNCTION get_chain_rule_action(action_in IN re$nv_list) RETURN VARCHAR2;
"
"
"
"-- this is used by chain views to output rule conditions
"
"FUNCTION get_chain_rule_condition(action_in IN re$nv_list, condition_in IN VARCHAR2)
"
"  RETURN VARCHAR2;
"
"
"
"-- this is used to retrieve the canonicalized object owner or name
"
"FUNCTION resolve_name(
"
"   full_name      IN VARCHAR2,
"
"   default_owner  IN VARCHAR2,
"
"   return_part    IN NUMBER) RETURN VARCHAR2;
"
"
"
"/*************************************************************
"
" * Calendar utility functions for schedule type sched_calendar_string
"
" *************************************************************
"
" */
"
"
"
"TYPE bylist IS VARRAY (256) OF PLS_INTEGER;
"
"
"
"Yearly     Constant Pls_Integer := 1;
"
"Monthly    Constant Pls_Integer := 2;
"
"Weekly     Constant Pls_Integer := 3;
"
"Daily      Constant Pls_Integer := 4;
"
"Hourly     Constant Pls_Integer := 5;
"
"Minutely   Constant Pls_Integer := 6;
"
"Secondly   Constant Pls_Integer := 7;
"
"
"
"
"
"Monday     Constant Integer := 1;
"
"Tuesday    Constant Integer := 2;
"
"Wednesday  Constant Integer := 3;
"
"Thursday   Constant Integer := 4;
"
"Friday     Constant Integer := 5;
"
"Saturday   Constant Integer := 6;
"
"Sunday     Constant Integer := 7;
"
"
"
"-- byday_days contains list of days
"
"-- byday_occurrence contains the corresponding monthly (or yearly)
"
"--   occurrence -5 .. -1,0, 1 .. 5    // 0 meaning any this weekday
"
"
"
"-- Example  BYDAY=-2MO, -1MO, 1MO, TU
"
"-- byday_day = Monday,Monday,Monday,Tuesday
"
"-- byday_orrurrence= -2,-1, 1, 0
"
"
"
"Procedure create_calendar_string(
"
"   frequency         in   pls_integer,
"
"   interval          in   pls_integer,
"
"   bysecond          in   bylist,
"
"   byminute          in   bylist,
"
"   byhour            in   bylist,
"
"   byday_days        in   bylist,
"
"   byday_occurrence  in   bylist,
"
"   bymonthday        in   bylist,
"
"   byyearday         in   bylist,
"
"   byweekno          in   bylist,
"
"   bymonth           in   bylist,
"
"   calendar_string   out  Varchar2);
"
"--
"
"Procedure resolve_calendar_string(
"
"   calendar_string   in   varchar2,
"
"   frequency         out  pls_integer,
"
"   interval          out  pls_integer,
"
"   calendars_used    out  boolean,
"
"   bysecond          out  scheduler$_int_array_type,
"
"   byminute          out  scheduler$_int_array_type,
"
"   byhour            out  scheduler$_int_array_type,
"
"   byday_days        out  scheduler$_int_array_type,
"
"   byday_occurrence  out  scheduler$_int_array_type,
"
"   bydate_y          out  scheduler$_int_array_type,
"
"   bydate_md         out  scheduler$_int_array_type,
"
"   bymonthday        out  scheduler$_int_array_type,
"
"   byyearday         out  scheduler$_int_array_type,
"
"   byweekno          out  scheduler$_int_array_type,
"
"   bymonth           out  scheduler$_int_array_type,
"
"   bysetpos          out  scheduler$_int_array_type);
"
"
"
"
"
"Procedure resolve_calendar_string(
"
"   calendar_string   in   varchar2,
"
"   frequency         out  pls_integer,
"
"   interval          out  pls_integer,
"
"   bysecond          out  bylist,
"
"   byminute          out  bylist,
"
"   byhour            out  bylist,
"
"   byday_days        out  bylist,
"
"   byday_occurrence  out  bylist,
"
"   bymonthday        out  bylist,
"
"   byyearday         out  bylist,
"
"   byweekno          out  bylist,
"
"   bymonth           out  bylist);
"
"
"
"-- Repeat intervals of jobs, windows or schedules are defined using the
"
"-- scheduler's calendar syntax. This procedure evaluates the calendar string
"
"-- and tells you what the next execution date of a job or window will be. This
"
"-- is very useful for testing the correct definition of the calendar string
"
"-- without having to actually schedule the job or window.
"
"--
"
"-- Parameters
"
"-- calendar_string    The to be evaluated calendar string.
"
"-- start_date         The date by which the calendar string becomes valid.
"
"--                    It might also be used to fill in specific items that are
"
"--                    missing from the calendar string. Can optionally be NULL.
"
"-- return_date_after  With the start_date and the calendar string the scheduler
"
"--                    has sufficient information to determine all valid
"
"--                    execution dates. By setting this argument the scheduler
"
"--                    determines which one of all possible matches to return.
"
"--                    When a NULL value is passed for this argument the
"
"--                    scheduler automatically fills in systimestamp as its
"
"--                    value.
"
"-- next_run_date      The first timestamp that matches the calendar string and
"
"--                    start date that occurs after the value passed in for the
"
"--                    return_date_after argument.
"
"
"
"
"
"
"
"-- This procedure can also be used to get multiple steps of the repeat interval
"
"-- by passing the next_run_date returned by one invocation as the
"
"-- return_date_after argument of the next invocation of this procedure.
"
"
"
"Procedure evaluate_calendar_string(
"
"   calendar_string    in  varchar2,
"
"   start_date         in  timestamp with time zone,
"
"   return_date_after  in  timestamp with time zone,
"
"   next_run_date      OUT timestamp with time zone);
"
"
"
"-- Internal function. Do not document.
"
"FUNCTION get_job_step_cf
"
"(
"
"   iec                         VARCHAR2,
"
"   icn                         VARCHAR2,
"
"   vname                       VARCHAR2,
"
"   iev                         SYS.RE$NV_LIST
"
") RETURN SYS.RE$VARIABLE_VALUE;
"
"
"
"FUNCTION generate_event_list(statusvec NUMBER) return VARCHAR2;
"
"
"
END dbms_scheduler;

Open in new window

I used APEX_MAIL package which help me but thanks for showing me the right direction.

Thanks.