如何将文本文件或其路径作为参数传递,并将文件读入预言机存储过程



我想将文件路径(可能在 C 或 D 驱动器中或服务器上的任何位置(作为参数传递给 oracle 存储过程并读取其中的文件。可以做到吗?我该怎么做?使用什么样的变量来执行此操作?我正在使用oracle12C。

">

读取文件" - 据我所知 - 意味着"使用UTL_FILE包"。

UTL_FILE目录(指向文件系统目录的 Oracle 对象,即您在硬盘上看到的目录(读取数据时,您的 DBA 必须

  • 创建目录
  • 授予您(即将使用该程序的用户(read该目录的/或write权限

目录通常位于数据库服务器上;它可以是它的CD驱动器,但并不完全像你所说的">任何地方"那样 - 除非DBA愿意创建那么多目录(我对此表示怀疑(。

然后,您将能够访问该文件并对其进行处理。


或者,您甚至可以使用外部表 - 它用作"普通"表,因此您可以直接针对它编写SELECT语句。在后台,它使用 SQL*Loader。不过,文件必须位于前面提到的目录中。


最后,SQL*Loader本身:它的好处是您要加载的文件驻留在PC上,而不必位于服务器上。您将创建一个控制文件(说明如何读取该文件(,将数据加载到表中并执行任何您想要的操作。

最新更新