在PL/SQL中调用外部程序可以通过使用DBMS_SCHEDULER
包或者UTL_FILE
包来实现。下面是使用DBMS_SCHEDULER
包来调用外部程序的示例代码:
BEGIN
DBMS_SCHEDULER.create_program(
program_name => 'MY_EXTERNAL_PROGRAM',
program_type => 'EXECUTABLE',
program_action => '/path/to/external_program',
enabled => TRUE
);
DBMS_SCHEDULER.create_job(
job_name => 'RUN_EXTERNAL_PROGRAM_JOB',
program_name => 'MY_EXTERNAL_PROGRAM',
enabled => TRUE
);
END;
/
在上面的例子中,我们创建了一个名为MY_EXTERNAL_PROGRAM
的程序,其类型为EXECUTABLE
,并指定了要执行的外部程序的路径。然后我们创建了一个名为RUN_EXTERNAL_PROGRAM_JOB
的作业,并指定它要运行的程序为MY_EXTERNAL_PROGRAM
。
另外,如果要在外部程序中传递参数,可以在创建程序和作业时通过arguments
参数来指定参数,例如:
DBMS_SCHEDULER.create_program(
program_name => 'MY_EXTERNAL_PROGRAM',
program_type => 'EXECUTABLE',
program_action => '/path/to/external_program',
arguments => '-param1 value1 -param2 value2',
enabled => TRUE
);
需要注意的是,使用DBMS_SCHEDULER
包调用外部程序需要有相应的权限才能执行成功。