加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle工具应用(一):数据文件导入SQL*Loader

发布时间:2020-12-12 15:32:28 所属栏目:百科 来源:网络整理
导读:Oracle提供的数据加载工具SQL*Loader可以将外部文件中的数据加载到Oracle数据库中,且支持多种数据类型(日期、字符、数据字符etc),可以将多种数据类型加载到数据库。 导入数据准备:一个控制文件(.CTL) + 一个数据文件(.DAT)即可. (1)控制文件:描述要加载

Oracle提供的数据加载工具SQL*Loader可以将外部文件中的数据加载到Oracle数据库中,且支持多种数据类型(日期、字符、数据字符etc),可以将多种数据类型加载到数据库。导入数据准备:一个控制文件(.CTL) + 一个数据文件(.DAT)即可.

(1)控制文件:描述要加载的数据信息(数据文件名、数据存储格式、文件中数据对应的存储字段、数据加载方式、哪张表的哪列etc)

注:【根据数据存储格式分类】

a.固定格式存储:数据按一定规律排序,扩展文件通过固定长度将数据分割;

b.自由格式存储:由规定的分隔符来区分不同字段的数据.

(2)数据文件:存放目标数据的文件

一.SQLLDR命令形式

>sqlldr

二.加载数据

关键在于:编写控制文件(决定要加载数据的格式)

1.固定格式加载

数据按一定的规律排列,可使用固定格式加载,控制文件通过数据的固定长度将数据分割.

a.创建一张表free_table,保存要加载的数据

导入之前没有数据:

b.准备测试数据文件:free_data.dat

c.编写控制文件:free_data.ctl,使用默认数据加载方式(适用于表数据为空的情况下,否则需要指定append或replace方式)

注:【固定格式控制文件】

infile:指定源数据文件

into 表名:数据将被添加到的表(可使用append向表中追加数据,或replace覆盖表中已有的数据)

position:指定表中字段对应数据的具体位置(一个英文符算1 一个中文符算2)

d.使用sqlldr命令加载数据,设置控制文件名和导入产生的日志信息文件

sqlldr 用户名/密码 control=控制文件位置 log=导入数据日志文件位置

导入结果:

生成的导入日志文件:

日志内容:

2.自由格式加载数据

数据没有一定的格式,可使用自由格式加载,控制文件通过指定的分隔符将数据分割.

a.使用之前的表free_table,数据之间使用美元符号($)分割数据,可以看到字段的长度不固定

b.编写控制文件:free_date2.ctl

b1.表不为空,且不指定加载方式(默认方式),

会报如下错误:

SQL*Loader-601: 对于 INSERT 选项,表必须为空。表 FREE_TABLE 上出错

b2.这时需要,更改为追加(append)方式加载数据:

注:【自由格式控制文件】

fields terminated by 指定分隔符 (表的字段列表)

c.使用sqlldr命令加载数据,设置控制文件名和导入产生的日志信息文件

sqlldr 用户名/密码 control=控制文件位置 log=导入数据日志文件位置

导入结果:

生成的导入日志文件:

嗯~ 就是这么简单!感谢chen工。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读