pl/sql中FTP的使用

在这边项目中,需要使用到ebs服务器和外部系统系统进行数据的交互,这边提出的方案是通过ftp的形式进行数据的交换,刚开始想着,这个怕是需要使用java来辅助实现了,结果在找资料的时候,发现一个ftp的包可以使用,于是就下载下来,觉得很实用,很简单,特别分享了!~

   1.编译程序包

下载需要用到程序包,在我们oracle ebs数据库里面进行编译。cux_hand_sanwen_ftp

  2.使用里面的方法

login()登陆到ftp服务器

list()列出某一个ftp服务器下面的文件目录

get()下载文件到ebs的服务器

put()上传文件到ftp服务器

logout()退出登陆

     3.注意的问题

在使用put和get方式的时候,对于dir的目录,是不能直接传递linux的实际路径在,要使用directories的方式来间接访问,如:

CREATE OR REPLACE DIRECTORY CUX_FTPFILE_DIR AS ‘/u01/TEST08/temp’;

演示代码:

DECLARE
v_my_conn       UTL_TCP.connection;
v_error_info    VARCHAR2(500);
v_ftpfile_list  cux_hand_sanwen_ftp.t_string_table;
–v_split_string cux_hand_sanwen_ftp.t_string_table;
BEGIN
v_my_conn := cux_hand_sanwen_ftp.login(’10.18.166.114′,
’21′,
‘cangzhang.com’,
’123456′);
cux_hand_sanwen_ftp.list(v_my_conn, ‘file/’, v_ftpfile_list);
FOR i IN v_ftpfile_list.first .. v_ftpfile_list.last LOOP
dbms_output.put_line(‘文件目录是:’ || v_ftpfile_list(i));
END LOOP;

–下载文件到本地ebs服务器
cux_hand_sanwen_ftp.get(p_conn      => v_my_conn,
p_from_file => ‘file/1111.ppt’,
p_to_dir    => ‘CUX_FTPFILE_DIR’,
p_to_file   => ’1111.ppt’);

–上传文件到远程ftp服务器
/*cux_hand_sanwen_ftp.put(p_conn      => v_my_conn,
p_from_dir  => ‘CUX_FTPFILE_DIR’,
p_from_file => ‘account.log’,
p_to_file   => ‘file/account.log’);*/
cux_hand_sanwen_ftp.logout(v_my_conn);

EXCEPTION
WHEN OTHERS THEN
v_error_info := SQLERRM;
dbms_output.put_line(‘this is a error’ || v_error_info);
END;

共有 0 条评论

Top