如何理解SQLLDR-CTL文件

网友投稿 358 2023-12-28

如何理解SQLLDR-CTL文件

如何理解SQLLDR-CTL文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

如何理解SQLLDR-CTL文件

SQLLDR 可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据不方便。

CTL 文件介绍

第一部分

1、LOAD DATA:通常以此为开头,其前可加如下参数:

2、UNRECOVERABLE:表示数据不可恢复

3、RECOVERABLE:表示数据可恢复

4、CONTINUE_LOAD:表示继续添加

第二部分

1、INFILE:表示数据文件位置,如果值为*,表示数据就在控制文件中,本例中没有单独的数据文件,对于大多数加载而言,都会将数据文件与控制文件分离。

2、INTO TABLE tbl_name:tbl_name 即数据要加载到的目标表,该表在你执行 SQLLDR 命令之前必须已经创建。

3、INTO 前还有一些很有意思的参数需要说明;

4、INSERT:向表中插入数据,表必须为空,如果表非空的话,执行 SQLLDR 命令时会报错,默认就是 INSERT 参数。

5、APPEND:向表中追加数据,不管表中是否有数据。

6、REPLACE:替换表中数据,相当于先 DELETE 表中全部数据,然后再 INSERT。

7、TRUNCATE:类似 REPLACE,只不过这里不使用 DELETE 方式删除表中数据,而是通过 TRUNCATE 的方式删除,然后再 INSERT。

8、FIELDS TERMINATED BY ",":设置数据部分字符串的分隔值,这里设置为逗号(,)分隔,当然也可以换成其他任意可见字符,只要确定那是数据行中的分隔符就行。

9、(ENAME, JOB, SAL):要插入的表的列名,这里需要注意的是列名要与表中列名完全相同,列的顺序可以与表中列顺序不同,但是必须与数据部分的列一一对应。

10、position 关键字用来指定列的开始和结束位置

11、position(m:n):指从第 m 个字符开始截止到第 n 个字符作为列值

12、position(*+2:15):直接指定数值的方式叫做绝对偏移量,如果使用*号,则为相对偏移量,表示上一个字段哪里结束,这次就哪里开始,相对便宜量也可以再做运算。

13、position(*) char(9):这种相对偏移量+类型和长度的优势在于,你只需要为第一列指定开始位置,其他列只需要指定列长度就可以。

14、FILLER:控制文件中指定 FILLER,表示该列值不导入表中。

15、BEGINDATA:表示以下为待加载数据,仅当 INFILE 指定为 * 时有效

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle报错ORA-00031: session marked for kill的处理方法
下一篇:vue分辨率适配(vue获取分辨率)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~