Oracle DBMS_SCHEDULER
Version 10.2
 
General Information
Source {ORACLE_HOME}/rdbms/admin/dbmssch.sql
First Available 10.1

Constants
Name Data Type Value
General
logging_off PLS_INTEGER 32
logging_runs PLS_INTEGER 64
logging_full PLS_INTEGER 256
Raise Flag Events
job_started PLS_INTEGER 1
job_succeeded PLS_INTEGER 2
job_failed PLS_INTEGER 4
job_broken PLS_INTEGER 8
job_completed PLS_INTEGER 16
job_stopped PLS_INTEGER 32
job_sch_lim_reached PLS_INTEGER 64
job_disabled PLS_INTEGER 128
job_chain_stalled PLS_INTEGER 256
job_all_events PLS_INTEGER 511
job_over_max_dur PLS_INTEGER 512
job_run_completed PLS_INTEGER job_succeeded+job_failed+job_stopped;

Dependencies
ALL_SCHEDULER_CHAINS DBA_SCHEDULER_JOBS
ALL_SCHEDULER_CHAIN_RULES DBA_SCHEDULER_JOB_ARGS
ALL_SCHEDULER_CHAIN_STEPS DBA_SCHEDULER_JOB_CLASSES
ALL_SCHEDULER_GLOBAL_ATTRIBUTE DBA_SCHEDULER_JOB_LOG
ALL_SCHEDULER_JOBS DBA_SCHEDULER_JOB_RUN_DETAILS
ALL_SCHEDULER_JOB_ARGS DBA_SCHEDULER_PROGRAMS
ALL_SCHEDULER_JOB_CLASSES DBA_SCHEDULER_PROGRAM_ARGS
ALL_SCHEDULER_JOB_LOG DBA_SCHEDULER_RUNNING_CHAINS
ALL_SCHEDULER_JOB_RUN_DETAILS DBA_SCHEDULER_RUNNING_JOBS
ALL_SCHEDULER_PROGRAMS DBA_SCHEDULER_SCHEDULES
ALL_SCHEDULER_PROGRAM_ARGS DBA_SCHEDULER_WINDOWS
ALL_SCHEDULER_RUNNING_CHAINS DBA_SCHEDULER_WINDOW_DETAILS
ALL_SCHEDULER_RUNNING_JOBS DBA_SCHEDULER_WINDOW_GROUPS
ALL_SCHEDULER_SCHEDULES DBA_SCHEDULER_WINDOW_LOG
ALL_SCHEDULER_WINDOWS DBA_SCHEDULER_WINGROUP_MEMBERS
ALL_SCHEDULER_WINDOW_DETAILS DEFSCHEDULE
ALL_SCHEDULER_WINDOW_GROUPS GV_$SCHEDULER_RUNNING_JOBS
ALL_SCHEDULER_WINDOW_LOG USER_QUEUE_SCHEDULES
ALL_SCHEDULER_WINGROUP_MEMBERS USER_SCHEDULER_CHAINS
AQ$SCHEDULER$_EVENT_QTAB USER_SCHEDULER_CHAIN_RULES
AQ$SCHEDULER$_EVENT_QTAB_R USER_SCHEDULER_CHAIN_STEPS
AQ$SCHEDULER$_EVENT_QTAB_S USER_SCHEDULER_JOBS
AQ$SCHEDULER$_JOBQTAB USER_SCHEDULER_JOB_ARGS
AQ$SCHEDULER$_JOBQTAB_R USER_SCHEDULER_JOB_LOG
AQ$SCHEDULER$_JOBQTAB_S USER_SCHEDULER_JOB_RUN_DETAILS
AQ$_SCHEDULER$_EVENT_QTAB_F USER_SCHEDULER_PROGRAMS
AQ$_SCHEDULER$_JOBQTAB_F USER_SCHEDULER_PROGRAM_ARGS
DBA_QUEUE_SCHEDULES USER_SCHEDULER_RUNNING_CHAINS
DBA_SCHEDULER_CHAINS USER_SCHEDULER_RUNNING_JOBS
DBA_SCHEDULER_CHAIN_RULES USER_SCHEDULER_SCHEDULES
DBA_SCHEDULER_CHAIN_STEPS V_$SCHEDULER_RUNNING_JOBS
DBA_SCHEDULER_GLOBAL_ATTRIBUTE _DEFSCHEDULE

SELECT name FROM dba_dependencies
WHERE referenced_name = 'DBMS_SCHEDULER'
UNION
SELECT referenced_name FROM dba_dependencies
WHERE name = 'DBMS_SCHEDULER';

Defined Data Types
TYPE bylist IS VARRAY (256) OF PLS_INTEGER;
 
Name Constant Data Type Value
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

TYPE SCHEDULER$_RULE_LIST IS TABLE OF sys.schedule;
/

TYPE SCHEDULER$_STEP_TYPE_LIST IS TABLE OF sys.sch;
/

TYPE SCHEDULER$_CHAIN_LINK_LIST IS TABLE OF sys.sc;
/

TYPE SCHEDULER$_STEP_TYPE IS OBJECT (
step_name VARCHAR2(32),
step_type VARCHAR2(32));
/

TYPE RE$VARIABLE_VALUE AS OBJECT (
variable_name VARCHAR2(32),
variable_data sys.anydata)

-- For the definition of RE$NV_LIST:
SELECT dbms_metadata.get_ddl('TYPE', 'RE$NV_LIST)
FROM dual;

Execute Any Class GRANT execute any class TO <schema_name>;
GRANT execute any class TO uwclass;
Exernal Jobs GRANT execute any program TO <schema_name>;
GRANT execute any program TO uwclass;
System Privileges to Create External Jobs GRANT create external job TO <schema_name>;
GRANT create external job TO uwclass;
System Privileges to Create Internal Database Jobs GRANT create job TO <schema_name>;
GRANT create job TO uwclass;
System Privileges to Create Chains dbms_rule_adm.grant_system_privilege(dbms_rule_adm.create_rule_obj, '<schema_name>')

dbms_rule_adm.grant_system_privilege(
   dbms_rule_adm.create_rule_set_obj, '<schema_name>')

dbms_rule_adm.grant_system_privilege(
   dbms_rule_adm.create_evaluation_context_obj, '<schema_name>')

BEGIN
  dbms_rule_adm.grant_system_privilege(
   dbms_rule_adm.create_rule_obj, 'uwclass'),
  dbms_rule_adm.grant_system_privilege(
   dbms_rule_adm.create_rule_set_obj, 'uwclass'),
  dbms_rule_adm.grant_system_privilege(
   dbms_rule_adm.create_evaluation_context_obj, 'uwclass')
END;
/

System Privileges to Create Schedules GRANT manage scheduler TO <schema_name>;
GRANT manage scheduler TO uwclass;
 
ADD_EVENT_QUEUE_SUBSCRIBER
Adds a user as a subscriber to the Scheduler event queue SYS.SCHEDULER$_EVENT_QUEUE, and grants the user permission to dequeue from this queue using the designated agent. dbms_scheduler.add_event_queue_subscriber(
subscriber_name IN VARCHAR2 DEFAULT NULL);
SELECT owner, name
FROM dba_queues
ORDER BY 2,1;

set linesize 121
col retention format a20

SELECT queue_table, max_retries, retry_delay, retention
FROM dba_queues
WHERE name = 'SCHEDULER$_EVENT_QUEUE';

select consumer_name
from dba_queue_subscribers
where queue_name = 'SCHEDULER$_EVENT_QUEUE';

exec dbms_scheduler.add_event_queue_subscriber('UWCLASS');

SELECT consumer_name
FROM dba_queue_subscribers
WHERE queue_name = 'SCHEDULER$_EVENT_QUEUE';

exec dbms_scheduler.remove_event_queue_subscriber('UWCLASS');

SELECT consumer_name
FROM dba_queue_subscribers
WHERE queue_name = 'SCHEDULER$_EVENT_QUEUE';
 
ADD_WINDOW_GROUP_MEMBER
Adds one or more windows to an existing window group dbms_scheduler.add_window_group_member(
group_name  IN VARCHAR2,
window_list IN VARCHAR2);
TBD
 
ALTER_CHAIN
Alters steps of a chain dbms_scheduler.alter_chain(
chain_name IN VARCHAR2,
step_name  IN VARCHAR2,
attribute  IN VARCHAR2,
value      IN BOOLEAN);
TBD
 
ALTER_RUNNING_CHAIN
Alters steps of a running chain

Overload 1
dbms_scheduler.alter_running_chain(
job_name  IN VARCHAR2,
step_name IN VARCHAR2,
attribute IN VARCHAR2,
value     IN BOOLEAN);
TBD
Overload 2 dbms_scheduler.alter_running_chain(
job_name  IN VARCHAR2,
step_name IN VARCHAR2,
attribute IN VARCHAR2,
value     IN VARCHAR2);
TBD
 
ANALYZE_CHAIN
Analyzes a chain or a list of steps and rules and outputs a list of chain dependencies dbms_scheduler.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);
TBD
 
AUTO_PURGE
Purges from the logs based on class and global log_history dbms_scheduler.auto_purge;
exec dbms_scheduler.auto_purge;
 
CHECK_SYS_PRIVS
Internal / Undocumented dbms_scheduler.check_sys_privs RETURN PLS_INTEGER;
conn uwclass/uwclass

SELECT dbms_scheduler.check_sys_privs
FROM dual;

conn / as sysdba

SELECT dbms_scheduler.check_sys_privs
FROM dual;
 
CLOSE_WINDOW
Closes an open window prematurely. A closed window means that it is no longer in effect. When a window is closed, the Scheduler will switch the resource plan to the one that was in effect outside the window or in the case of overlapping windows to another window. dbms_scheduler.close_window(window_name IN VARCHAR2);
TBD
 
COPY_JOB
Copy a job. The new_job will contain all the attributes of the old_job, except that it will be created disabled dbms_scheduler.copy_job(old_job IN VARCHAR2, new_job IN VARCHAR2);
exec dbms_scheduler.copy_job('UW_File_Load', 'New_UW_Load');

SELECT job_name, enabled
FROM all_scheduler_jobs;

exec dbms_scheduler.drop_job('New_UW_Load', TRUE);

SELECT job_name, enabled
FROM all_scheduler_jobs;
 
CREATE_CALENDAR_STRING
Undocumented dbms_scheduler.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);
TBD
 
CREATE_CHAIN
Creates a chain. Chains are created disabled and must be enabled before use. dbms_scheduler.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);
TBD
 
CREATE_EVENT_SCHEDULE
Create a named event schedule dbms_scheduler.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);
TBD - Demo 2?
 
CREATE_JOB
Create a job in a single call (without using an existing program or schedule).

Overload 1
dbms_scheduler.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);
See Scheduler Demos: Below
Overload 2 dbms_scheduler.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);
See Scheduler Demos: Below
Create a job using an existing Program and Schedule

Overload 3
dbms_scheduler.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);
See Scheduler Demos: Below
Create a job using an existing Program

Overload 4
dbms_scheduler.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);
See Scheduler Demos: Below
Overload 5 dbms_scheduler.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);
See Scheduler Demos: Below
Overload 6 dbms_scheduler.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);
See Scheduler Demos: Below
 
CREATE_JOB_CLASS
Create a job class dbms_scheduler.create_job_class(
job_class_name          VARCHAR2,
resource_consumer_group VARCHAR2 DEFAULT NULL,
service                 VARCHAR2 DEFAULT NULL,
logging_level           PLS_INTEGER DEFAULT DBMS_SCHEDULER.LOGGING_RUNS,
log_history             PLS_INTEGER DEFAULT NULL,
comments                VARCHAR2 DEFAULT NULL);

BEGIN
  dbms_resource_manager.create_consumer_group('Workers', 'Those that do
  actual work');
END;
/

BEGIN
  dbms_scheduler.create_job_class(
  job_class_name          => 'finance_jobs', 
  resource_consumer_group => 'Workers');
END;
/

 
CREATE_PROGRAM
Create a new program dbms_scheduler.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);
See Scheduler Demos: Below
 
CREATE_SCHEDULE
Creates a schedule dbms_scheduler.create_schedule(
schedule_name   IN VARCHAR2,
start_date      IN TIMESTAMP WITH TIMEZONE DEFAULT NULL,
repeat_interval IN VARCHAR2,
end_date        IN TIMESTAMP WITH TIMEZONE DEFAULT NULL,
comments        IN VARCHAR2 DEFAULT NULL);
BEGIN
  dbms_scheduler.create_schedule('embed_sched', repeat_interval =>
  'FREQ=YEARLY;BYDATE=0130,0220,0725');

  dbms_scheduler.create_schedule('main_sched', repeat_interval => 'FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=15;BYHOUR=9,17;INCLUDE=embed_sched'); END;
/

BEGIN
  dbms_scheduler.create_schedule('job2_schedule', repeat_interval =>
  'job1_schedule+OFFSET:15D');
END;
/

BEGIN
  dbms_scheduler.create_schedule('year_start', repeat_interval=>
  'FREQ=YEARLY;BYDATE=0201^SPAN:1W;BYDAY=SUN');

  dbms_scheduler.create_schedule('retail_fiscal_year',
  to_timestamp_tz('15-JAN-2005 12:00:00','DD-MON-YYYY HH24:MI:SS'),
  'year_start,year_start+13w,year_start+26w,year_start+39w;periods=4');
END;
/

BEGIN
  dbms_scheduler.create_schedule('fifth_day_off', repeat_interval => 
  'FREQ=retail_fiscal_year;BYDAY=SAT,SUN;INCLUDE=holiday;
  BYPERIOD=2,4;BYSETPOS=5');
END;
/

See Scheduler Demos: Below
 
CREATE_WINDOW
Creates a recurring time window and associates it with a resource plan. The window can then be used to schedule jobs, which run under the associated resource plan. dbms_scheduler.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);

BEGIN
  dbms_scheduler.create_window_group(
  window_name   => 'weeknights',
  resource_plan => 'maint_window'
  duration      -> interval '90' minute,
  window_priority => 'HIGH'
  comments => 'Off-hours maintenance window');
END;
/

 
CREATE_WINDOW_GROUP
Creates a new window group dbms_scheduler.create_window_group(
group_name  IN VARCHAR2,
window_list IN VARCHAR2 DEFAULT NULL,
comments    IN VARCHAR2 DEFAULT NULL);
BEGIN
  dbms_scheduler.create_window_group(
  group_name  => 'downtime',
  window_list => 'weeknights, weekends'
  comments => 'Group of system maintenance windows');
END;
/
 
DEFINE_ANYDATA_ARGUMENT
Define an argument with a default value encapsulated in an ANYDATA data type dbms_scheduler.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);
TBD
 
DEFINE_CHAIN_EVENT_STEP
Adds or replaces a chain step and associates it with an inline schedule

Overload 1
dbms_scheduler.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);
TBD
Adds or replaces a chain step and associates it with an inline event

Overload 2
dbms_scheduler.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);
TBD
 
DEFINE_CHAIN_RULE
Adds or replaces a chain rule dbms_scheduler.define_chain_rule(
chain_name IN VARCHAR2,
condition  IN VARCHAR2,
action     IN VARCHAR2,
rule_name  IN VARCHAR2 DEFAULT NULL,
comments   IN VARCHAR2 DEFAULT NULL);
TBD
 
DEFINE_CHAIN_STEP
Adds or replaces a chain step and associates it with a program or chain dbms_scheduler.define_chain_step(
chain_name   IN VARCHAR2,
step_name    IN VARCHAR2,
program_name IN VARCHAR2);
TBD
 
DEFINE_METADATA_ARGUMENT
Define a special metadata argument for the program dbms_scheduler.define_metadata_argument(
program_name       IN VARCHAR2,
metadata_attribute IN VARCHAR2,
argument_position  IN PLS_INTEGER,
argument_name      IN VARCHAR2 DEFAULT NULL);
TBD
 
DEFINE_PROGRAM_ARGUMENT

Define an argument of a program

Overload 1
dbms_scheduler.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);
See Scheduler Demos: Below
Overload 2 dbms_scheduler.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);
See Scheduler Demos: Below
 
DISABLE
Disable a program, chain, job, window or window_group. The procedure will NOT return an error if the object was already disabled. dbms_scheduler.disable(
name  IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
See Scheduler Demos: Below
 
DISABLE1_CALENDAR_CHECK
Undocumented dbms_scheduler.disable1_calendar_check;
dbms_scheduler.disable1_calendar_check;
 
DROP_CHAIN
Drop a chain dbms_scheduler.drop_chain(
chain_name IN VARCHAR2,
force      IN BOOLEAN DEFAULT FALSE);
TBD
 
DROP_CHAIN_RULE
Drop a chain rule dbms_scheduler.drop_chain_rule(
chain_name IN VARCHAR2,
rule_name  IN VARCHAR2,
force      IN BOOLEAN DEFAULT FALSE);
TBD
 
DROP_CHAIN_STEP
Drop a chain step dbms_scheduler.drop_chain_step(
chain_name IN VARCHAR2,
step_name  IN VARCHAR2,
force      IN BOOLEAN DEFAULT FALSE);
TBD
 
DROP_JOB
Drop a job or several jobs dbms_scheduler.drop_job(
job_name IN VARCHAR2,
force    IN BOOLEAN DEFAULT FALSE);
See Scheduler Demos: Below
 
DROP_JOB_CLASS
Drop a job class dbms_scheduler.drop_job_class(
job_class_name IN VARCHAR2,
force          IN BOOLEAN DEFAULT FALSE);
exec dbms_scheduler.create_job_class(job_class_name, TRUE);
 
DROP_PROGRAM
Drops an existing program (or a comma separated list of programs) dbms_scheduler.drop_program(
program_name IN VARCHAR2,
force        IN BOOLEAN DEFAULT FALSE);
See Scheduler Demo: Below
 
DROP_PROGRAM_ARGUMENT
Drop a program argument either by name or position

Overload 1
dbms_scheduler.drop_program_argument(
program_name      IN VARCHAR2,
argument_position IN PLS_INTEGER);
See Scheduler Demos: Below
Overload 2 dbms_scheduler.drop_program_argument(
program_name  IN VARCHAR2,
argument_name IN VARCHAR2);
See Scheduler Demos: Below
 
DROP_SCHEDULE
Drop a schedule (or comma-separated list of schedules) dbms_scheduler.drop_schedule(
schedule_name IN VARCHAR2,
force         IN BOOLEAN DEFAULT FALSE);
TBD - Demo2 ?
 
DROP_WINDOW
Drops a window. All metadata about the window is removed from the database. All references to the window are removed from window groups. dbms_scheduler.drop_window(
window_name IN VARCHAR2,
force       IN BOOLEAN DEFAULT FALSE);
TBD
 
DROP_WINDOW_GROUP
Drops a window group but not the windows that are members of this window group. dbms_scheduler.drop_window_group(
group_name IN VARCHAR2,
force      IN BOOLEAN DEFAULT FALSE);
TBD
 
ENABLE
Enable a program, chain, job, window or window group. The procedure will NOT return an error if the object was already enabled. dbms_scheduler.enable(name IN VARCHAR2);
See Scheduler Demos: Below
 
EVALUTE_CALENDAR_STRING
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 dbms_scheduler.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);
set serveroutput on;

alter session set NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';

DECLARE
  start_date TIMESTAMP;
  return_date_after TIMESTAMP;
  next_run_date TIMESTAMP;
BEGIN
  start_date := TO_TIMESTAMP_TZ('01-JAN-2006 10:00:00','DD-MON-YYYY HH24:MI:SS');

  return_date_after := start_date;
  FOR i IN 1..5
  LOOP
    dbms_scheduler.evaluate_calendar_string
    'FREQ=DAILY;BYHOUR=9;BYMINUTE=30;BYDAY=MON,TUE,WED,THU,FRI',
    start_date, return_date_after, next_run_date);

    dbms_output_put_line('next_run_date: ' || next_run_date);
    return_date_after := next_run_date;
  END LOOP;
END;
/
 
EVALUTE_RUNNING_CHAIN
Forces immediate evaluation of a running chain dbms_scheduler.evaluate_running_chain(job_name IN VARCHAR2);
TBD
 
GENERATE_EVENT_LIST
Not documented dbms_scheduler.generate_event_list(statusvec NUMBER) RETURN VARCHAR2
TBD
 
GENERATE_JOB_NAME
Returns a unique name for a job dbms_scheduler.generate_job_name(
prefix IN VARCHAR2 DEFAULT 'JOB$_') RETURN VARCHAR2;
SELECT dbms_scheduler.generate_job_name
FROM dual;

SELECT dbms_scheduler.generate_job_name('UW')
FROM dual;
 
GET_ATTRIBUTE
Retrieve an attribute

Overload 1
dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT PLS_INTEGER);
TBD
Overload 2 dbms_scheduler.get_attribute(
name       IN  VARCHAR2,
attribute  IN  VARCHAR2,
value      OUT BOOLEAN);
TBD
Overload 3 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT DATE);
TBD
Overload 4 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT TIMESTAMP);
TBD
Overload 5 dbms_scheduler.get_attribute(
name       IN  VARCHAR2,
attribute  IN  VARCHAR2,
value      OUT TIMESTAMP WITH TIME ZONE);
TBD
Overload 6 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT TIMESTAMP WITH LOCAL TIME ZONE);
TBD
Overload 7 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT INTERVAL DAY TO SECOND);
TBD
Overload 8 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT VARCHAR2);
TBD
Overload 9 dbms_scheduler.get_attribute(
name      IN  VARCHAR2,
attribute IN  VARCHAR2,
value     OUT VARCHAR2,
value2    OUT VARCHAR2);
TBD
 
GET_CHAIN_RULE_ACTION
Used by chain views to output rule actions dbms_scheduler.get_chain_rule_action(action_in IN re$nv_list)
RETURN VARCHAR2;
TBD
 
GET_CHAIN_RULE_CONDITION
Used by chain views to output rule conditions dbms_scheduler.get_chain_rule_condition(
action_in    IN re$nv_list,
condition_in IN VARCHAR2) RETURN VARCHAR2;
TBD
 
GET_DEFAULT_VALUE
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'. dbms_scheduler.get_default_value(attribute_name VARCHAR2)
RETURN VARCHAR2 ;
TBD
 
GET_JOB_STEP_CF
Undocumented dbms_scheduler.get_job_step_cf (
iec   VARCHAR2,
icn   VARCHAR2,
vname VARCHAR2,
iev   SYS.RE$NV_LIST) RETURN SYS.RE$VARIABLE_VALUE;
TBD
 
GET_SCHEDULER_ATTRIBUTE
Get the value of a scheduler attribute dbms_scheduler.get_scheduler_attribute(
attribute IN  VARCHAR2,
value     OUT VARCHAR2);
See SET_SCHEDULER_ATTRIBUTE Demo: Below
 
GET_SYS_TIME_ZONE_NAME
Return the current timezone setting dbms_scheduler.get_sys_time_zone_name RETURN VARCHAR2
SELECT dbms_scheduler.get_sys_time_zone_name
FROM dual;
 
GET_VARCHAR2_VALUE
Converts SYS.ANYDATA to VARCHAR2 dbms_scheduler.get_varchar2_value(a SYS.ANYDATA) RETURN VARCHAR2;
CREATE TABLE t (mycol sys.anyData);

INSERT INTO t
VALUES (sys.anyData.convertVarchar2('hello world'));

SELECT * FROM t;

SELECT dbms_scheduler.get_varchar2_value(mycol)
FROM t;
 
OPEN_WINDOW
Opens a window independent of its schedule. This window will open and the resource plan associated with it, will take effect immediately for the duration specified or for the normal duration of the window if no duration is given. Only an enabled window can be manually opened. dbms_scheduler_open_window(
window_name IN VARCHAR2,
duration    IN INTERVAL DAY TO SECOND,
force       IN BOOLEAN DEFAULT FALSE);
TBD
 
PURGE_LOG
Purges from the logs based on the arguments. The default is to purge all entries dbms_scheduler.purge_log(
log_history IN PLS_INTEGER DEFAULT 0,
which_log   IN VARCHAR2 DEFAULT 'JOB_AND_WINDOW_LOG',
job_name    IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_EVENT_QUEUE_SUBSCRIBER
Remove subscriber from the SCHEDULER queue dbms_scheduler.remove_event_queue_subscriber(
subscriber_name IN VARCHAR2 DEFAULT NULL);
See ADD_EVENT_QUEUE_SUBSCRIBER Demo: Above
 
REMOVE_WINDOW_GROUP_MEMBER
Removes one or more windows from an existing window group dbms_scheduler.remove_window_group_member(
group_name  IN VARCHAR2,
window_list IN VARCHAR2);
TBD
 
RESET_JOB_ARGUMENT_VALUE
Clear a previously set job argument value

Overload 1
dbms_scheduler.reset_job_argument_value(
job_name          IN VARCHAR2,
argument_position IN PLS_INTEGER);
exec dbms_scheduler.reset_job_argument_value('UW_File_Load', 2);
Overload 2 dbms_scheduler.reset_job_argument_value(
job_name      IN VARCHAR2,
argument_name IN VARCHAR2);
exec dbms_scheduler.reset_job_argument_value('UW_File_Load', 'YEARNO');
 
RESOLVE_CALENDAR_STRING
Undocumented

Overload 1
dbms_scheduler.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);
TBD
Overload 2 dbms_scheduler.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);
TBD
 
RESOLVE_NAME
Retrieve the canonicalized object owner or name dbms_scheduler.resolve_name(
full_name     IN VARCHAR2,
default_owner IN VARCHAR2,
return_part   IN NUMBER) RETURN VARCHAR2;
SELECT dbms_scheduler.resolve_name('SERVERS', 'UWCLASS', 1)
FROM dual;

SELECT dbms_scheduler.resolve_name('SERVERS', 'UWCLASS', 2)
FROM dual;
 
RUN_CHAIN
Immediately runs a job pointing to a chain starting with a list of specified steps. The job will be started in the background.

Overload 1
dbms_scheduler.run_chain(
chain_name  IN VARCHAR2,
start_steps IN VARCHAR2,
job_name    IN VARCHAR2 DEFAULT NULL);
TBD
Immediately runs a job pointing to a chain starting with the given list of step states

Overload 2
dbms_scheduler.run_chain(
chain_name      IN VARCHAR2,
step_state_list IN SYS.SCHEDULER$_STEP_TYPE_LIST,
job_name        IN VARCHAR2 DEFAULT NULL);
DECLARE
  initial_step_states sys.scheduler$_step_type_list;
BEGIN
  initial_step_states := sys.scheduler$_step_type_list(
  sys.scheduler$_step_type('step1', 'SUCCEEDED'),
  sys.scheduler$_step_type('step2', 'FAILED 27486'),
  sys.scheduler$_step_type('step3', 'SUCCEEDED'),
  sys.scheduler$_step_type('step5', 'SUCCEEDED'));
  dbms_scheduler.run_chain('my_chain', initial_step_states);
END;
/
 
RUN_JOB
Run a job immediately dbms_scheduler.run_job(
job_name            IN VARCHAR2,
use_current_session IN BOOLEAN DEFAULT TRUE);
See Scheduler Demos: Below
 
SET_ATTRIBUTE
Sets an attribute of a scheduler object

Overload 1
dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN BOOLEAN);
TBD
Overload 2 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN VARCHAR2,
value2    IN VARCHAR2 DEFAULT NULL);
TBD
Overload 3 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN DATE);
TBD
Overload 4 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN TIMESTAMP);
TBD
Overload 5 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN TIMESTAMP WITH TIME ZONE);
TBD
Overload 6 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN TIMESTAMP WITH LOCAL TIME ZONE);
TBD
Overload 7 dbms_scheduler.set_attribute(
name      IN VARCHAR2,
attribute IN VARCHAR2,
value     IN INTERVAL DAY TO SECOND);
TBD
 
SET_ATTRIBUTE_NULL
Sets an attribute of a scheduler program to NULL dbms_scheduler.set_attribute_null(
name      IN VARCHAR2,
attribute IN VARCHAR2);
TBD
 
SET_JOB_ANYDATA_VALUE
Set a value to be passed to one of the arguments of a program using the ANYDATA data type

Overload 1
dbms_scheduler.set_job_anydata_value(
job_name          IN VARCHAR2,
argument_position IN PLS_INTEGER,
argument_value    IN SYS.ANYDATA);
TBD
Overload 2 dbms_scheduler.set_job_anydata_value(
job_name       IN VARCHAR2,
argument_name  IN VARCHAR2,
argument_value IN SYS.ANYDATA);
TBD
 
SET_JOB_ARGUMENT_VALUE
Set a value to be passed to one of the arguments of the program

Overload 1
dbms_scheduler.set_job_argument_value(
job_name          IN VARCHAR2,
argument_position IN PLS_INTEGER,
argument_value    IN VARCHAR2);
exec dbms_scheduler.set_job_argument_value('UW_File_Load', 2, '2007');
Overload 2 dbms_scheduler.set_job_argument_value(
job_name       IN VARCHAR2,
argument_name  IN VARCHAR2,
argument_value IN VARCHAR2);
exec dbms_scheduler.set_job_argument_value('UW_File_Load', 'YEARNO', '2007');
 
SET_SCHEDULER_ATTRIBUTE
Set the value of a scheduler attribute. This takes effect immediately, but the resulting changes may not be seen immediately. dbms_scheduler.set_scheduler_attribute(
attribute IN VARCHAR2,
value     IN VARCHAR2);
set serveroutput on

DECLARE
 x VARCHAR2(100);
BEGIN
  dbms_scheduler.get_scheduler_attribute('DEFAULT_TIMEZONE', x);
  dbms_output.put_line('DTZ: ' || x);
  dbms_scheduler.get_scheduler_attribute('EVENT_EXPIRY_TIME', x);
  dbms_output.put_line('EET: ' || x);
  dbms_scheduler.get_scheduler_attribute('LOG_HISTORY', x);
  dbms_output.put_line('LH: ' || x);
  dbms_scheduler.get_scheduler_attribute('MAX_JOB_SLAVE_PROCESSES', x);
  dbms_output.put_line('MJSP: ' || x);
END;
/

BEGIN
  dbms_scheduler.set_scheduler_attribute('MAX_JOB_SLAVE_PROCESSES', 3);
END;
/

DECLARE
 x VARCHAR2(100);
BEGIN
  dbms_scheduler.get_scheduler_attribute('DEFAULT_TIMEZONE', x);
  dbms_output.put_line('DTZ: ' || x);
  dbms_scheduler.get_scheduler_attribute('EVENT_EXPIRY_TIME', x);
  dbms_output.put_line('EET: ' || x);
  dbms_scheduler.get_scheduler_attribute('LOG_HISTORY', x);
  dbms_output.put_line('LH: ' || x);
  dbms_scheduler.get_scheduler_attribute('MAX_JOB_SLAVE_PROCESSES', x);
  dbms_output.put_line('MJSP: ' || x);
END;
/
STIME
Get scheduler default time and timezone dbms_scheduler.stime(follow_default_timezone BOOLEAN DEFAULT FALSE)
RETURN TIMESTAMP WITH TIME ZONE;
SELECT dbms_scheduler.stime
FROM dual;
STOP_JOB
Stop a job or several jobs that are currently running dbms_scheduler.stop_job(
job_name IN VARCHAR2,
force    IN BOOLEAN DEFAULT FALSE);
See Scheduler Demos: Below
 
Scheduler Demos
Job Based on Stored Procedure conn / as sysdba

GRANT create any directory TO uwclass;
GRANT create procedure TO uwclass;
GRANT create table TO uwclass;

GRANT create job TO uwclass;
GRANT manage scheduler TO uwclass;

conn uwclass/uwclass

set linesize 121

-- create directory
CREATE OR REPLACE DIRECTORY ctemp AS 'c:\temp';

-- create load files
-- 01012007.dat
20046,32.83732,-96.80432
20056,32.58215,-97.35639
20057,32.85561,-97.24912
20058,32.81017,-96.96251
20060,32.85566,-97.25105

-- 01022007.dat
20061,32.85367,-97.24873
20063,32.85435,-97.24535
20064,32.85414,-97.24550
20065,32.75283,-97.25089
20066,32.84538,-96.97260

-- 01032007.dat
19882,32.83566,-96.96873
19898,32.83508,-96.93626
19900,32.86650,-97.24690
19915,32.81678,-96.95659
19816,32.83405,-96.97099

-- 01042007.dat
19817,32.83386,-96.97072
19818,32.95360,-96.99048
19820,32.81636,-96.97261
19833,32.82940,-96.97367
19836,32.83260,-96.94896

-- 01052007.dat
19837,32.87159,-97.24725
19839,32.83503,-96.93805
19841,32.86650,-97.24690
19843,32.86424,-97.24691
19844,32.83270,-96.97369

-- create table
CREATE TABLE locations (
location_id NUMBER(10),
latitude    FLOAT(20),
longitude   FLOAT(20))
PCTFREE 0
PCTUSED 99;

-- create stored procedure
CREATE OR REPLACE PACKAGE sched_demo IS
runno  PLS_INTEGER := 0;
PROCEDURE load_data(fname VARCHAR2, yearno PLS_INTEGER);
END sched_demo;
/

CREATE OR REPLACE PACKAGE BODY sched_demo IS

PROCEDURE load_data(fname VARCHAR2, yearno PLS_INTEGER) IS
 vSFile   utl_file.file_type;
 vNewLine VARCHAR2(200);
 p1       PLS_INTEGER;
 p2       PLS_INTEGER;
 locid    locations.location_id%TYPE;
 latit    locations.latitude%TYPE;
 longi    locations.longitude%TYPE;
BEGIN
  vSFile := utl_file.fopen('CTEMP', fname || TO_CHAR(yearno) ||
  '.dat', 'R');
  LOOP
    BEGIN
      utl_file.get_line(vSFile, vNewLine);
      IF vNewLine IS NULL THEN
        EXIT;
      END IF;

      p1 := INSTR(vNewLine,',',1,1);
      p2 := INSTR(vNewLine,',',1,2);
      locid := SUBSTR(vNewLine, 1, p1-1);
      latit := SUBSTR(vNewLine, p1+1, p2-p1-1);
      longi := SUBSTR(vNewLine, 15+1);

      INSERT INTO locations
      (location_id, latitude, longitude)
      VALUES
      (locid, latit, longi);
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        EXIT;
    END;
  END LOOP;
  COMMIT;
  utl_file.fclose(vSFile);

  runno := runno + 1;
  utl_file.frename('CTEMP',fname || TO_CHAR(yearno) || '.dat',
  'CTEMP', TO_CHAR(runno) || '.arc', TRUE);
EXCEPTION
  WHEN OTHERS THEN
    NULL;
END load_data;

END sched_demo;
/

-- test procedure
exec sched_demo.load_data('0101', 2007);

SELECT * FROM locations;

TRUNCATE TABLE locations;

-- rename 01012007.arc back to 01012007.dat

-- create a program with all job arguments
BEGIN
 
dbms_scheduler.create_program(
  program_name   => 'Run_LOAD_DATA',
  program_type   => 'STORED_PROCEDURE',
  program_action => 'SCHED_DEMO.LOAD_DATA',
  number_of_arguments => 2,
  enabled        => FALSE,
  comments       => 'UW Test Scheduled Load');
END;
/

desc all_scheduler_programs

col owner format a10
col program_name format a20
col program_action format a40
col comments format a50

SELECT owner, program_name, program_type, program_action
FROM all_scheduler_programs;

SELECT owner, program_name, enabled, comments
FROM all_scheduler_programs;

-- set program argument
SELECT overload, position, argument_name, data_type
FROM all_arguments
WHERE object_name = 'SCHED_DEMO.LOAD_DATA';

BEGIN
  dbms_scheduler.define_program_argument(
  program_name      => 'Run_LOAD_DATA',
  argument_position => 1,
  argument_type     => 'VARCHAR2',
  default_value     => '0101');

  dbms_scheduler.define_program_argument(
  program_name      => 'Run_LOAD_DATA',
  argument_position => 2,
  argument_type     => 'NUMBER',
  default_value     => 2007);
END;
/

desc all_scheduler_job_args

col job_name format a15
col argument_type format a20
col default_value format a20

SELECT program_name, argument_name, argument_position, argument_type,
default_value
FROM all_scheduler_program_args;

-- create job
BEGIN
  dbms_scheduler.create_job(
  job_name        => 'UW_File_Load',
  program_name    => 'Run_LOAD_DATA',
  start_date      => dbms_scheduler.stime,
  repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',
  end_date        => dbms_scheduler.stime+1,
  enabled         => FALSE,
  auto_drop       => FALSE,
  comments        => 'UW Demo Job');
END;
/

desc all_scheduler_jobs

col start_date format a40

SELECT job_name, program_name, start_date
FROM all_scheduler_jobs;

-- set scheduler attributes
col value format a50

SELECT attribute_name, value
FROM all_scheduler_global_attribute
;

BEGIN
  dbms_scheduler.set_scheduler_attribute('MAX_JOB_SLAVE_PROCESSES', 2);
END;
/


SELECT attribute_name, value
FROM all_scheduler_global_attribute
;

-- enable the program
exec dbms_scheduler.enable('Run_LOAD_DATA');
-- enable the job
exec dbms_scheduler.enable('UW_File_Load');

SELECT *
FROM locations;

-- test the job
exec dbms_scheduler.run_job('UW_File_Load', TRUE);

SELECT *
FROM locations;

col additional_info format a25

SELECT job_name, operation, status, additional_info
FROM all_scheduler_job_log
WHERE owner = 'UWCLASS';

SELECT job_name, state, run_count, next_run_date
FROM all_scheduler_jobs;

-- watch the job run renaming files as required to avoid a conflict

-- clean up
BEGIN
  -- stop the job
  BEGIN
 
  dbms_scheduler.stop_job('UW_File_Load', TRUE);
  EXCEPTION
    WHEN OTHERS THEN
      NULL;
  END;
  -- drop program argument
 
dbms_scheduler.drop_program_argument('Run_LOAD_DATA', 1);
 
dbms_scheduler.drop_program_argument('Run_LOAD_DATA', 2);
  -- disable the program
  dbms_scheduler.disable('Run_LOAD_DATA', TRUE);
  -- drop the program
  dbms_scheduler.drop_program('Run_LOAD_DATA', TRUE);
  -- drop the job
  dbms_scheduler.drop_job('UW_File_Load', TRUE);
END;
/

Job Based on Executable BEGIN
  dbms_scheduler.create_job(
  job_name   => 'EXT_LOAD',
  job_type   => 'EXECUTABLE',
  job_action => 'c:\oracle\product\ora102\bin\sqlldr.exe',
  number_of_arguments => 1,
  start_date => SYSTIMESTAMP,
  enabled    => FALSE,
  comments   => 'Demo running SQL*Loader');
END;
/

BEGIN
  dbms_scheduler.create_job(
  job_name   => 'EXT_LOAD',
  job_type   => 'EXECUTABLE',
  job_action => 'c:\oracle\product\ora102\bin\sqlldr userid=uwclass/uwclass control=c:\temp\sqlldr02.ctl log=c:\temp\sqlldr02.log',
  start_date => SYSTIMESTAMP,
  enabled    => FALSE,
  comments   => 'Demo running SQL*Loader');
END;
/


BEGIN
  dbms_scheduler.set_job_argument_value('EXT_LOAD', , 'userid=uwclass/uwclass control=c:\temp\sqlldr02.ctl log=c:\temp\sqlldr02.log');
END;
/

conn / as sysdba

GRANT create external job TO uwclass;

conn uwclass/uwclass

exec dbms_scheduler.enable('EXT_LOAD');

SELECT job_name, operation, status, additional_info
FROM all_scheduler_job_log
WHERE owner = 'UWCLASS';

SELECT job_name, additional_info
FROM all_scheduler_job_run_details;

SELECT *
FROM emp;
 
Related Topics
DBMS_JOB
DBMS_RESOURCE_MANAGER
DBMS_RULE_ADM
 
Contact Us Legal Notices and Terms of UsePrivacy Statement
Hosted by www.Geocities.ws

1