在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
包調用外部程序需要有相應的權限才能執行成功。