使用Oracle PL / SQL将文件写入SFTP

时间:2012-02-09 11:19:07

标签: oracle plsql ftp oracle10g sftp

我写了一个PL / SQL程序来连接到FTP服务器。我能够将文件写入该FTP服务器。使用相同的代码我尝试连接到SFTP服务器,但它失败了。如何使用PL / SQL连接到SFTP?

2 个答案:

答案 0 :(得分:2)

您可以尝试DidiSoft提供的商业ORA_SFTP软件包:

connection_id := ORA_SFTP.CONNECT_HOST(...
ORA_SFTP.UPLOAD(connection_id, data, 'remote_file.dat');

免责声明:我为DidiSoft工作

答案 1 :(得分:1)

SFTP需要SSH加上protocol的实施。就我的PL / SQL知识和Google所知,目前PL / SQL中没有可用的SSH或此协议实现。有一些替代方案:

  • 在数据库中使用Java并打开足够的端口。当这是在数据库中使用Java的唯一原因时,不推荐使用;它的设计不如PL / SQL,并且DBA维护成本很高,因为大多数DBA都没有经验。
  • 使用PL / SQL在数据库外部启动作业。例如,在过去,我经常使用Pentaho Data Integration(以前称为Kettle),它提供了一个免费的解决方案,可以将数据流从表/过程绘制到sftp接收者,然后运行它。从PL / SQL运行需要一个调度程序(我总是使用自己的调度程序,因为它还集成了Kettle,但您也可以考虑与Oracle AppsRedwood JCS/Cronacle或其他集成的调度程序。然后,PL / SQL中的编码变为:'begin package.submit('SFTP it'); package.wait;端;”

我会选择第二种选择。如果您需要更多详细信息,请告知我们。