Oracle DBMS_SCHEDULER调用操作系统脚本

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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-2150384/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8520577/viewspace-2150384/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值