mysql sql loader_Sql Loader的简单使用

本文介绍了如何使用SQL*Loader将CSV文件中的数据加载到Oracle数据库表中。SQL*Loader支持不同格式的数据文件,并通过控制文件来定义加载规则。在执行过程中,它会产生日志文件和坏文件,用于跟踪错误和无效数据。操作步骤包括准备数据文件、创建目标表、编写控制文件及执行SQL*Loader命令。最后,通过查询验证加载结果。
摘要由CSDN通过智能技术生成

之前总结的关于SQL*Loader的用法,今天又用到,又翻出来看看

SQL*Loader 可将外部文件中的数据加载到Oracle DB的表中。它具有一个功能强大的数据分析引擎,因此对数据文件中数据的格式没有什么限制。

SQL*Loader 使用以下文件:输入数据文件:SQL*Loader 从控制文件中指定的一个或多个文件(或操作系统的等效文件)中读取数据。从SQL*Loader的角度看,数据文件中的数据是按记录组织的。一个特定的数据文件可采用固定记录格式、可变记录格式或流记录格式。可通过控制文件中的INFILE参数指定记录格式。如果未指定记录格式,默认格式为流记录格式。

控制文件:控制文件是一个文本文件,它是使用SQL*Loader 可识别的语言编写的。控制文件指示SQL*Loader在何处查找数据、如何分析和解释数据以及在何处插入数据等等。控制文件算是一个导入的模板。

日志文件:SQL*Loader 开始执行时,会创建日志文件。如果不能创建日志文件,执行就会终止。日志文件包含加载操作的详细说明,包括加载过程中发生的任何错误的说明。

坏文件:坏文件中包含被SQL*Loader 或Oracle DB拒绝的记录。当输入格式无效时,SQL*Loader就会拒绝数据文件记录。SQL*Loader接受处理某一数据文件记录后,会将该数据文件记录发送到Oracle DB,以便能够作为一行插入到表中。如果Oracle DB确定该行有效,就会将该行插入到表中;如果确定该行无效,则会拒绝该记录,然后SQL*Loader会将该记录放入坏文件中。

放弃文件:仅当需要这种文件并且指定了应启用放弃文件时,才会创建此文件。放弃文件中包含的记录是因不符合控制文件指定的任何记录选择标准而从加载中过滤掉的记录

后面三个可以不选

操作步骤如下:

1),建立数据文件,我这里使用的是从plsql developer中导出来的emp表emp.csv。

内容如下:

3abbeb7090cab79dbf9024a30099b42c.png

2),target表要存在,要保持与数据文件的字段定义一致,否则会出错。这里我使用as select方式根据emp表创建一张表emp3,再使用delete语句清空表数据。

3),建立一个控制文件user.ctl。我这里的控制文件是我用EM工具生成的。内容如下:

OPTIONS (skip=1,rows=128)

LOAD DATA

INFILE '/u01/app/oracle/oradata/orcl/emp.csv'

APPEND

INTO TABLE SCOTT.EMP3

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

(

EMPNO INTEGER EXTERNAL,

ENAME CHAR,

JOB CHAR,

MGR CHAR,

HIREDATE DATE,

SAL INTEGER EXTERNAL,

COMM INTEGER EXTERNAL,

DEPTNO INTEGER EXTERNAL

)

注:

1.LOAD DATA语句通知SQL*Loader开始新数据加载操作

2.INFILE关键字指定含有待加载数据的数据文件的名称。这里还可以使用 BADFILE、DISCARDFILE来指定坏数据和丢弃数据的文件

3.APPEND关键字是将数据加载到非空表时可以使用的选项之一。要将数据加载到空表中,请使用INSERT关键字。

4.INTO TABLE 要插入记录的表

5.Fields terminated by ","   定义数据中每行记录用","分隔

6.Optionally enclosed by '"' -- 数据中每个字段用'"'框起,比如字段中有","分隔符时

7.第一行处OPTIONS,skip=1是跳过第一行,rows=128定义要加载的行数限制

4),执行命令:sqlldr system/oracle control=user.ctl

截图如下:

59db738cce9b7813e96f58d0b6febcc5.png

5),查询验证

3ec06b9d8eb0490401d9b0f633a7686f.png

sqlldr更多用法请自行网上搜索···

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值