首页 > 解决方案 > 如何读取制表符分隔的 .txt 文件并插入到 oracle 表中

问题描述

我想使用 PLSQL 读取制表符分隔的文件并将文件数据插入表中。每天都会生成新文件。我不确定外部表是否会有所帮助,因为文件名将根据日期更改。

文件名:SPRReadResponse_YYYYMMDD.txt

下面是示例文件数据。

在此处输入图像描述

标签: sqloracleplsqlutl-file

解决方案


在您自己的 PC 上工作的选项是使用SQL*Loader。由于文件名每天都在变化,您将使用操作系统的批处理脚本(在 MS Windows 上,这些是 .BAT 文件)在调用sqlldr(和控制文件)时传递不同的名称。

外部表要求您有权访问数据库服务器并(至少)read对其包含这些 .TXT 文件的目录具有权限。除非您是 DBA,否则您必须与他们交谈以提供环境。至于更改文件名,您可以使用alter table ... location相当不方便的。

如果您想控制它,请使用UTL_FILE; 是的,您仍然需要访问数据库服务器上的那个目录,但是 - 编写一个 PL/SQL 脚本,您可以修改任何您想要的内容,包括文件名。


或者,一个更简单的选项,首先将输入文件重命名为SPRReadResponse.txt然后加载它并为自己省去所有麻烦。


推荐阅读