sql - 如何读取制表符分隔的 .txt 文件并插入到 oracle 表中
问题描述
我想使用 PLSQL 读取制表符分隔的文件并将文件数据插入表中。每天都会生成新文件。我不确定外部表是否会有所帮助,因为文件名将根据日期更改。
文件名:SPRReadResponse_YYYYMMDD.txt
下面是示例文件数据。
解决方案
在您自己的 PC 上工作的选项是使用SQL*Loader。由于文件名每天都在变化,您将使用操作系统的批处理脚本(在 MS Windows 上,这些是 .BAT 文件)在调用sqlldr
(和控制文件)时传递不同的名称。
外部表要求您有权访问数据库服务器并(至少)read
对其包含这些 .TXT 文件的目录具有权限。除非您是 DBA,否则您必须与他们交谈以提供环境。至于更改文件名,您可以使用alter table ... location
相当不方便的。
如果您想控制它,请使用UTL_FILE
; 是的,您仍然需要访问数据库服务器上的那个目录,但是 - 编写一个 PL/SQL 脚本,您可以修改任何您想要的内容,包括文件名。
或者,一个更简单的选项,首先将输入文件重命名为SPRReadResponse.txt
,然后加载它并为自己省去所有麻烦。
推荐阅读
- php - PHP PDO 如何在查询中搜索 2 个或多个值?
- java - 如果excel工作表连续有数据,则获取行数
- visual-studio-code - 有没有我可以修改的配置,这样我就不必先 ⌃Space 来触发 IntelliSense 以在 vscode 中进行“markdown”
- java - Cucumber-为什么我的步骤定义没有被识别
- javascript - 我可以将类名添加到 CSS 变量吗?
- javascript - 如何执行在 Firefox 扩展的内容脚本中引用函数的注入 html 标签的触发事件属性?
- unity3d - 平滑嘈杂图像过滤器的最佳方法是什么?
- c++ - 如何包含 std::vector、std::complex
, std::cout 等在 Visual Studio C++ 中 - html - 如何在使用 ScrollMagic 向下滚动后到达页面末尾时才显示页脚?
- x86 - 我可以在 x86 处理器中更改页面的 4KB 大小吗?为什么?