- 0
- 0
- 约3.16千字
- 约 3页
- 2025-06-27 发布于四川
- 举报
PLSQL 利用FTP与SFTP上传和下载附件
简介:在附件接口同步以及客户化邮件系统中,获取请求的输出文件并将文件从应用
服务器中下载获取出来,然后上传到数据库服务器中,如果应用服务器与数据库服务器在同
一台服务器上,那当然简单粗暴直接用utl_file的方法,若应用服务器与数据库服务器不在
同一服务器上,若应用服务器还不只一台的话,那就要获取当前节点名称并去当前节点下取
文件。
1.利用ftp上传下载:
共享文件服务器,如果用户对文件的操作安全要求不高,会开启FTP来实现主机间的文
件操作,默认端口为21。
实现方式
使用Oracle内置程序包utl_tcp来实现通过FTP协议操作服务器文件。
官方提供了ftp程序,需要到官网下载,主要是对utl_tcp进行了封装,简化了程序的调
用。登陆到ebs数据库编译ftp.pck即可。
测试脚本
在做测试之前,要将host添加到acl中
DECLARE
l_return_statusVARCHAR2(240);
l_msg_dataVARCHAR2(240);
v_source_fileVARCHAR2(240):=
/u01/dev/app/fs_ne/inst/DEV_bjs0-t50/logs/appl/conc/out/CUXEAMEQUIPK
PI_557992_1.PDF;
v_dest_dirVARCHAR2(240);
v_new_nameVARCHAR2(240):=557992_CUXEAMEQUIPKPI.PDF;
g_report_out_dirVARCHAR2(50):=WRITE_MAIL_DIR;
g_db_mail_file_dirVARCHAR2(30):=MAIL_FILE_DIR;--邮件发送文件主
l_connutl_tcp.connection;
BEGIN
BEGIN
l_return_status:=fnd_api.g_ret_sts_success;
--建立连接
l_conn:=ftp.login(99,21,appldev,
appldev);
dbms_output.put_line(l_conn!);
ftp.binary(l_conn);
--APP-DB
ftp.get(p_conn=l_conn,
p_from_file=v_source_file,
p_to_dir=g_db_mail_file_dir,
p_to_file=v_new_name);
dbms_output.put_line(ftp.get!);
ftp.logout(l_conn);
EXCEPTION
WHENOTHERSTHEN
l_return_status:=fnd_api.g_ret_sts_unexp_error;
l_msg_data:=SQLERRM;
END;
dbms_output.put_line(l_return_status:||l_return_status);
dbms_output.put_line(l_msg_data:||l_msg_data);
END;
2.利用sftp上传下载:
SFTP传输方式使用了加密/解密技术,所以使用起来是非常安全的,不过传输效率会比
FTP要低。默认端口为22。
实现方法
使用JavaSource实现SFTP操作服务器文件。采用JSCHJavaLibrary,JSCH是用java实现
SSH功能的库。并且客户化包调用JSCH库实现文件操作(这里是借鉴付朋同事的方
您可能关注的文档
最近下载
- 九上期末考试数学模拟.pdf VIP
- 2025年体育用品绿色技术专利行业报告.docx
- 2025年内蒙古呼和浩特市政府采购评审专家考试真题(附含答案).docx VIP
- 2023-2025中考化学真题分类汇编:专题05 元素考点01 元素及元素周期表.docx VIP
- 2025年内蒙古呼和浩特市政府采购评审专家考试真题含答案.docx VIP
- 98浙J30 卷帘门-标准图集.docx VIP
- 三年(2019-2021)中考真题化学-考点08原子结构(全国通用).docx VIP
- 2025年内蒙古呼和浩特市政府采购评审专家考试测试题及答案.docx VIP
- 二零二五版合同Amazon店铺代运营协议模板.docx VIP
- 《膝关节教学》课件.ppt VIP
原创力文档

文档评论(0)