1. 创建一个shell脚本并授权:
[oracle@xhdbserver01 DBA]$ cat ftp_file.sh
#!/bin/bash
ftp -n<<!--
open 192.168.9.12
user ftpuser ftpuser
binary
cd /
lcd $1
prompt
put $2
close
bye
chmod u+x ftp_file.sh
2. 创建一个过程, 通过dbms_scheduler来调用创建的shell脚本
begin
dbms_scheduler.create_credential
(
credential_name => 'scriptuser',
username => 'oracle',
password => 'oracle'
);
end;
/
CREATE OR REPLACE PROCEDURE sp_transfer_file_by_ftp(p_directory IN VARCHAR2,
p_filename IN VARCHAR2) IS
BEGIN
dbms_scheduler.create_job(job_name => 'unix_job',
job_type => 'executable',
number_of_arguments => 2,
job_action => '/home/oracle/DBA/ftp_file.sh',
auto_drop => TRUE,
credential_name => 'scriptuser');
dbms_scheduler.set_job_argument_value(job_name => 'unix_job',
+argument_position => 1,
argument_value => p_directory);
dbms_scheduler.set_job_argument_value(job_name => 'unix_job',
argument_position => 2,
argument_value => p_filename);
dbms_scheduler.enable('unix_job');
dbms_scheduler.run_job('unix_job');
END;
3. 调用过程上传文件
begin
sp_transfer_file_by_ftp('/home/oracle', 'ggs_start.sh');
end;
[oracle@xhdbserver01 DBA]$ cat ftp_file.sh
#!/bin/bash
ftp -n<<!--
open 192.168.9.12
user ftpuser ftpuser
binary
cd /
lcd $1
prompt
put $2
close
bye
chmod u+x ftp_file.sh
2. 创建一个过程, 通过dbms_scheduler来调用创建的shell脚本
begin
dbms_scheduler.create_credential
(
credential_name => 'scriptuser',
username => 'oracle',
password => 'oracle'
);
end;
/
CREATE OR REPLACE PROCEDURE sp_transfer_file_by_ftp(p_directory IN VARCHAR2,
p_filename IN VARCHAR2) IS
BEGIN
dbms_scheduler.create_job(job_name => 'unix_job',
job_type => 'executable',
number_of_arguments => 2,
job_action => '/home/oracle/DBA/ftp_file.sh',
auto_drop => TRUE,
credential_name => 'scriptuser');
dbms_scheduler.set_job_argument_value(job_name => 'unix_job',
+argument_position => 1,
argument_value => p_directory);
dbms_scheduler.set_job_argument_value(job_name => 'unix_job',
argument_position => 2,
argument_value => p_filename);
dbms_scheduler.enable('unix_job');
dbms_scheduler.run_job('unix_job');
END;
3. 调用过程上传文件
begin
sp_transfer_file_by_ftp('/home/oracle', 'ggs_start.sh');
end;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-2150384/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8520577/viewspace-2150384/