Вообще говоря, так оно и есть:
- есть сервер базы данных
- на одном из его дисков есть каталог
- этот каталог будет использоваться в команде
create directory
, которая создает каталог , объект Oracle
- будет использоваться в качестве цели для ваших операций с файлами. Например:
- будет содержать файлы CSV, являющиеся источником внешних таблиц
- .dmp файлы, результаты экспорта данных, будут храниться там (то же самое относится и к импорту)
UTL_FILE
создаст файлы в этом каталоге
Все это означает, что ваша идея создания файла на FTP-сервере может работать не так просто.
Однако есть способ: если вы создаете каталог (объект Oracle) с использованием UNC (Universal Naming Convention), который указывает на каталог на FTP-сервере, файл может быть создан там. Сделайте некоторое исследование об этом; Я знаю, что когда-то это делал (помещал файлы на сервер приложений), но это было давно, и я не помню всего, что делал.
Другой вариант, который вы можете рассмотреть, это DBMS_SCHEDULER
package. Предположим, вы создаете файл на сервере базы данных (это самый простой вариант; если вы все сделаете правильно, это более или менее тривиально). После завершения процедуры (которая создает файл) вызовите DBMS_SCHEDULER.CREATE_JOB
, используя тип задания executable
, и вызовите пакетный файл операционной системы, который скопирует файл с сервера базы данных на FTP-сервер.
Это все, что я могу сказать об этом; по крайней мере, у вас есть что исследовать и подумать.