在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
包调用外部程序需要有相应的权限才能执行成功。