SQLLDR 和 .ctl 文件

Posted

技术标签:

【中文标题】SQLLDR 和 .ctl 文件【英文标题】:SQLLDR and .ctl files 【发布时间】:2020-12-10 16:33:06 【问题描述】:

我有一个 ddl 脚本来创建一些表,但数据在 .ctl 文件中,我以前从未使用过它。我做了一些研究,但我不太了解如何使用 SQLLDR。这个怎么运作?我可以使用其他方式来执行 .ctl 文件吗?我只是在使用 PL/SQL 和 Oracle 10G

【问题讨论】:

参考docs.oracle.com/cd/B10501_01/text.920/a96518/aload.htm。这篇文章有一些应该有帮助的例子。 【参考方案1】:

按照你的说法,它会是这样的:

使用 DDL 脚本,创建所有这些表

如果 CTL 文件包含数据,我认为它在 BEGINDATA 部分内。好吧,再好不过了,因为——只要你运行加载器,它就会知道在哪里找到要加载的数据(这也意味着控制文件使用infile *,对吧?)

您必须有权访问 SQL*Loader

如果你能连接到数据库服务器,它就在那里 如果您使用的是自己的 PC,请查看是否已安装 连同客户端软件 或者,您的 PC 上甚至可能有一个数据库(XE?)

一旦你拥有它(sqlldr.exe),请确保它的目录包含在 PATH 环境变量中,或者 - 如果没有 - 通过指定它的整个路径来调用它

打开操作系统的命令提示符

导航到包含CTL 文件的目录

运行加载器

sqlldr scott/tiger control=file1.ctl log=file1.log

如果一切正常,数据将被加载。检查日志文件!

【讨论】:

以上是关于SQLLDR 和 .ctl 文件的主要内容,如果未能解决你的问题,请参考以下文章

SQL*Loader 加载数据问题,创建了.ctl 文件,在执行sqlldr命令之后出现找不到文件

sqlldr的用法

ctl文件参数OPTIONS是啥意思?

sqlldr 向oracle导入csvtxt文件

oracle sqlldr导入数据

sqlldr trailing nullcols