Записать файл в SFTP с использованием Oracle PL / SQL - PullRequest
3 голосов
/ 09 февраля 2012

Я написал процедуру PL / SQL для подключения к FTP-серверу.Я могу записать файл на этот FTP-сервер.Используя тот же код, я пытался подключиться к серверу SFTP, но это не удалось.Как мне подключиться к SFTP с использованием PL / SQL?

Ответы [ 2 ]

2 голосов
/ 24 октября 2016

Вы можете попробовать коммерческий пакет ORA_SFTP , предоставленный DidiSoft:

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

Отказ от ответственности: я работаю на DidiSoft

1 голос
/ 08 января 2014

SFTP требует SSH плюс реализация протокола . Что касается моих знаний по PL / SQL и Google, в настоящее время нет доступных реализаций SSH или этого протокола в PL / SQL. Есть несколько альтернатив:

  • Используйте Java в базе данных и откройте достаточно портов. Не рекомендуется, когда это единственная причина использовать Java в базе данных; он не так хорошо спроектирован, как PL / SQL, и может быть дорогим для обслуживания администратором баз данных, поскольку большинство администраторов баз данных не имеют с ним никакого опыта.
  • Используйте PL / SQL для запуска задания вне базы данных. Например, в прошлом я часто использовал Pentaho Data Integration (ранее известную как Kettle), которая предоставляет бесплатное решение для передачи вашего потока данных из таблицы / процедуры получателю sftp, а затем запускает его. Для запуска из PL / SQL требуется планировщик (я всегда использовал наш собственный, потому что он также интегрирует Kettle, но вы также можете рассмотреть планировщик, интегрированный с Oracle Apps , Redwood JCS / Cronacle или другими ). Кодирование в PL / SQL затем становится примерно таким: 'begin package.submit (' SFTP it '); package.wait; конец;»

Я бы пошел на второй вариант. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

...