FILE_WATCHER
Publicado por fbutrons (1 intervención) el 23/07/2019 14:38:02
Buenas tardes,
Estoy intentando hacer una prueba de file_watcher pero cuando ejecuto el job me muestra el siguiente error:
ORA-27473: argument 1 does not exist
La idea es que cuando entre el fichero FRAN.txt inserte en una tabla el valor 1
Los pasos son los siguientes:
1 -
Creo credenciales de usuario con administrador del sistema windows.
2-
3-
4-
5-
6-
7-
8-
9-
Muchas gracias por vuestra ayuda
Estoy intentando hacer una prueba de file_watcher pero cuando ejecuto el job me muestra el siguiente error:
ORA-27473: argument 1 does not exist
La idea es que cuando entre el fichero FRAN.txt inserte en una tabla el valor 1
Los pasos son los siguientes:
1 -
Creo credenciales de usuario con administrador del sistema windows.
2-
1
CREATE TABLE TEST_FILEWATHER(valor number)
1
2
3
4
5
6
7
8
9
BEGIN
DBMS_SCHEDULER.create_file_watcher(
file_watcher_name => 'test_file_watcher',
directory_path => 'C:\BDU_INPUT',
file_name => 'FRAN.dmp',
credential_name => 'my_cred_admin',
destination => NULL,
enabled => FALSE);
END;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BEGIN
DBMS_SCHEDULER.create_program(
program_name => 'file_watcher_test_prog',
program_type => 'stored_procedure',
program_action => 'file_watcher_test_proc',
number_of_arguments => 1,
enabled => FALSE);
END;
BEGIN
DBMS_SCHEDULER.define_metadata_argument(
program_name => 'file_watcher_test_prog',
metadata_attribute => 'event_message',
argument_position => 1);
END;
1
2
3
4
5
6
7
8
create or replace procedure file_watcher_test_proc(p_sfwr sys.scheduler_filewatcher_result)
as
v_sql varchar2(98);
begin
v_sql:='INSERT INTO TEST_FILEWATHER VALUES (1)';
EXECUTE IMMEDIATE V_SQL;
COMMIT;
end;
1
2
3
4
5
6
7
8
9
BEGIN
DBMS_SCHEDULER.create_job(
job_name => 'file_watcher_test_job',
program_name => 'file_watcher_test_prog',
event_condition => NULL,
queue_spec => 'test_file_watcher',
auto_drop => FALSE,
enabled => FALSE);
END;
1
2
3
BEGIN
DBMS_SCHEDULER.set_attribute('file_watcher_test_job','parallel_instances',TRUE);
END;
1
2
3
EXEC DBMS_SCHEDULER.enable('test_file_watcher');
EXEC DBMS_SCHEDULER.enable('file_watcher_test_prog');
EXEC DBMS_SCHEDULER.enable('file_watcher_test_job');
1
2
3
4
5
BEGIN
DBMS_SCHEDULER.RUN_JOB(
JOB_NAME => 'file_watcher_test_job',
USE_CURRENT_SESSION => FALSE);
END;
Muchas gracias por vuestra ayuda
Valora esta pregunta


0