温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle DBMS_SCHEDULER调用操作系统脚本怎么编写

发布时间:2021-11-12 15:46:04 来源:亿速云 阅读:228 作者:柒染 栏目:关系型数据库

本篇文章给大家分享的是有关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;

以上就是Oracle DBMS_SCHEDULER调用操作系统脚本怎么编写,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI