PL/SQLのプロシージャまたは関数からシェルスクリプトを実行する方法を知っている人はいますか?シェルスクリプトが「/usr/bin/bash/convert.sh」であるとしましょう。
そのための外部ジョブを作成する必要があります。
まず、ジョブを実行するOSユーザーとパスワードを使用して、認証情報を作成する必要があります。
begin
dbms_scheduler.create_credential
(
credential_name => 'my_credential',
username => 'Oracle',
password => 'Oracle123'
);
end;
/
その後、外部ジョブを作成するときにこの資格情報を使用できます。たとえば、2つの引数を使用して変換スクリプトを呼び出す(入力ファイルと出力ファイル)
begin
dbms_scheduler.create_job
(
job_name => 'convert_job',
job_type => 'executable',
number_of_arguments => 2,
job_action => '/usr/bin/bash/convert.sh',
auto_drop => true,
credential_name => 'my_credential'
);
dbms_scheduler.set_job_argument_value('convert_job', 1, '/home/Oracle/file.in');
dbms_scheduler.set_job_argument_value('convert_job', 2, '/home/Oracle/file.out');
dbms_scheduler.enable('convert_job');
end;
/