【问题标题】:How to pass a text file or it's path as parameter and read the file into an oracle stored procedure如何将文本文件或其路径作为参数传递并将文件读入 oracle 存储过程
【发布时间】:2020-10-04 12:22:48
【问题描述】:

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

【问题讨论】:

    标签: oracle file stored-procedures oracle12c


    【解决方案1】:

    “读取文件” - 据我理解的问题 - 意思是“使用UTL_FILE 包”。

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

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

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

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


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


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

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2015-02-04
      • 2016-10-17
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      相关资源
      最近更新 更多