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

使用Oracle PL/SQL将文件写入SFTP,oracle,plsql,ftp,oracle10g,sftp,Oracle,Plsql,Ftp,Oracle10g,Sftp,我编写了一个PL/SQL过程来连接FTP服务器。我能够将文件写入FTP服务器。使用相同的代码,我尝试连接到SFTP服务器,但失败了。如何使用PL/SQL连接到SFTP?SFTP需要SSH和。就我和Google的PL/SQL知识而言,目前在PL/SQL中没有SSH或该协议的可用实现。有一些替代方案: 在数据库中使用Java并打开足够的端口。当这是在数据库中使用Java的唯一原因时,不建议使用;它的设计不如PL/SQL好,DBA维护它的成本很高,因为大多数DBA都没有使用它的经验 使用PL/SQL

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

SFTP需要SSH和。就我和Google的PL/SQL知识而言,目前在PL/SQL中没有SSH或该协议的可用实现。有一些替代方案:

  • 在数据库中使用Java并打开足够的端口。当这是在数据库中使用Java的唯一原因时,不建议使用;它的设计不如PL/SQL好,DBA维护它的成本很高,因为大多数DBA都没有使用它的经验
  • 使用PL/SQL在数据库外部启动作业。例如,在过去我经常使用(以前称为Kettle),它提供了一个免费的解决方案,可以将数据流从表/过程绘制到sftp接收方,然后运行它。从PL/SQL运行需要一个调度器(我总是使用我们自己的,因为它也集成了釜,但您也可以考虑调度器集成,或其他)。然后,用PL/SQL进行编码,类似于:“beginpackage.submit('sftpit');包,等等;结束;'

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

您可以尝试DidiSoft提供的商业套餐:

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

免责声明:我为DidiSoft工作,您不能从PL/SQL执行SFTP,但可以在Oracle中使用Java。请参阅示例,了解如何完成。thx获取您的响应。这并不完全正确。您可以通过SSL协议使用。这和SFTP不太一样,但它是可能的…谢谢Ben-你有关于这方面的文章的链接吗?这是直截了当的吗?(不是质问,只是好奇):)好的原始问题。我也需要这个。我所处的政府场景中,他们不允许映射驱动器,因此我需要SFTP。只是想知道你有没有尝试过约翰·道尔的建议如果有,你有没有遇到任何问题?