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

前端之家收集整理的这篇文章主要介绍了Oracle工具应用(一):数据文件导入SQL*Loader前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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工。

原文链接:https://www.f2er.com/oracle/211168.html

猜你在找的Oracle相关文章