Database Reference
In-Depth Information
The following PL/SQL block creates a program with two arguments for running the Perl
script test.pl . To enable a program that includes arguments, all arguments must be defined
with separate calls to the packaged procedure DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT .
begin
dbms_scheduler.create_program(
program_name=>'perl_program',
program_type=>'EXECUTABLE',
program_action=> '/usr/bin/env',
number_of_arguments=>2,
enabled=>false
);
dbms_scheduler.define_program_argument(
program_name=>'perl_program',
argument_position=>1,
argument_name=>'env',
argument_type=>'VARCHAR2',
default_value=>'PATH=/opt/oracle/product/db10.2/perl/bin:/home/oracle'
);
dbms_scheduler.define_program_argument(
program_name=>'perl_program',
argument_position=>2,
argument_name=>'script',
argument_type=>'VARCHAR2',
default_value=>'test.pl'
);
dbms_scheduler.enable('perl_program');
dbms_scheduler.create_job(
job_name=>'perl_job',
program_name=>'perl_program',
enabled=>false,
auto_drop=>false
);
end;
/
The job succeeds, since the environment variable PATH , which is removed by the sched-
uler, is supplied explicitly as a program argument. The file test.pl must be located in one of
the directories assigned to PATH .
SQL> EXEC dbms_scheduler.run_job('perl_job')
PL/SQL procedure successfully completed.
SQL> SELECT status, additional_info
FROM dba_scheduler_job_run_details
WHERE log_id=(SELECT max(log_id) FROM dba_scheduler_job_run_details);
STATUS ADDITIONAL_INFO
--------- ------------------------------------------------------------
SUCCEEDED STANDARD_ERROR="This is perl script /home/oracle/test.pl
executed by UNIX process 5387."
Search WWH ::




Custom Search