谁能建议我如何编写路径来存储我的存储过程在我的 oracle DB 中输出的输出文件?

Can anyone suggest me how i can write the path to store the output file in which my stored procedure outputs in my oracle DB?

假设我的 FTP 服务器的 IP 地址是 xx.xxx.xx.xx 并且我需要将输出文件存储在 D:/example 中。我需要确保我提供的路径在我的 FTP 服务器中。我如何将它包含在我的 fopen 函数中,例如指向我的 FTP 服务器中示例的路径。

一般来说,是这样的:

  • 有一个数据库服务器
  • 其中一张磁盘上有一个目录
  • 该目录将在创建 目录、Oracle 对象
  • create directory 命令中使用
  • 它将用作您的 file-related 操作的目标。例如:
    • 它将包含作为外部表源的 CSV 文件
    • .dmp 文件,数据泵导出的结果,将存储在那里(导入也是如此)
    • UTL_FILE 将在该目录中创建文件

所有这些意味着您在 FTP 服务器上创建文件的想法可能并不那么容易。

但是,有一种方法:如果您使用指向 FTP 服务器上的目录的 UNC(通用命名约定)创建目录(Oracle 对象),则可能会在那里创建文件。做一些研究;我知道我曾经这样做过(将文件放到应用程序服务器上),但那是很久以前的事了,我不记得我所做的一切。

您可能会考虑的另一个选择是 DBMS_SCHEDULER 包。假设您在数据库服务器上创建一个文件(这是最简单的选择;如果您做得对,它或多或少是微不足道的)。程序(创建文件)完成后,使用 executable 作业类型调用 DBMS_SCHEDULER.CREATE_JOB 并调用操作系统批处理文件,将文件从数据库服务器复制到 FTP服务器。

我只能说这些了;至少,你有值得研究和思考的东西。