BEGIN DBMS_SCHEDULER.CREATE_CREDENTIAL('MY_CREDENTIAL', 'farkaf', '********'); END; \ BEGIN DBMS_SCHEDULER.CREATE_FILE_WATCHER( FILE_WATCHER_NAME => 'my_watcher', DIRECTORY_PATH => '/tmp', FILE_NAME => 'foo*.txt', CREDENTIAL_NAME => 'MY_CREDENTIAL', DESTINATION => NULL, ENABLED => FALSE); END; \ BEGIN DBMS_SCHEDULER.CREATE_PROGRAM ( PROGRAM_NAME => 'my_program', PROGRAM_TYPE => 'STORED_PROCEDURE', PROGRAM_ACTION => 'fw_newfile', NUMBER_OF_ARGUMENTS => 1, ENABLED => FALSE); END; \ BEGIN DBMS_SCHEDULER.DEFINE_METADATA_ARGUMENT( PROGRAM_NAME => 'my_program', METADATA_ATTRIBUTE => 'event_message', ARGUMENT_POSITION => 1); END; \ CREATE PROCEDURE fw_newfile(fev IN SYS.SCHEDULER_FILEWATCHER_RESULT) IS BEGIN insert into fw_test (fw_name) VALUES (fev.actual_file_name); END; \ BEGIN DBMS_SCHEDULER.CREATE_JOB( JOB_NAME => 'my_job', PROGRAM_NAME => 'my_program', EVENT_CONDITION => NULL, QUEUE_SPEC => 'my_watcher', AUTO_DROP => FALSE, ENABLED => FALSE); END; \ BEGIN DBMS_SCHEDULER.ENABLE('my_program, my_job, my_watcher'); END; ////////////////////////////////////////////////////// begin dbms_scheduler.create_credential( credential_name => 'watch_credential', username => 'farkaf', password => 'T3rlQu'); end; / create table eod_reports (when timestamp, file_name varchar2(100), file_size number, processed char(1)); create or replace procedure q_eod_report (payload IN sys.scheduler_filewatcher_result) as begin insert into eod_reports values (payload.file_timestamp, payload.directory_path || '/' || payload.actual_file_name, payload.file_size, 'N'); end; / begin dbms_scheduler.create_program( program_name => 'eod_prog', program_type => 'stored_procedure', program_action => 'q_eod_report', number_of_arguments => 1, enabled => false); dbms_scheduler.define_metadata_argument( program_name => 'eod_prog', metadata_attribute => 'event_message', argument_position => 1); dbms_scheduler.enable('eod_prog'); end; / begin dbms_scheduler.create_file_watcher( file_watcher_name => 'eod_reports_watcher', directory_path => '/tmp/eod_reports', file_name => 'eod*.txt', credential_name => 'watch_credential', destination => null, enabled => false); end; / begin dbms_scheduler.create_job( job_name => 'eod_job', program_name => 'eod_prog', event_condition => 'tab.user_data.file_size > 10', queue_spec => 'eod_reports_watcher', auto_drop => false, enabled => false); dbms_scheduler.set_attribute('eod_job','parallel_instances',true); end; / exec dbms_scheduler.enable('eod_reports_watcher,eod_job');