Oracle中使用sqlldr加载数据
一、SQLLDR数据加载简单示例
1. 创建示例数据表
create table TS_USER
(
id VARCHAR2(20),
user_name VARCHAR2(30),
password VARCHAR2(50),
sex CHAR(1),
create_time DATE
)
2. 在E盘下创建控制文件data.ctl,内容如下:
LOAD DATA
INFILE 'data.txt'
APPEND INTO TABLE TS_USER
FIELDS TERMINATED BY ','
(ID, USER_NAME, PASSWORD)
3. 在E盘下创建数据文件data.txt,内容如下:
1,tuozixuan,123456
2,wengpeng,password
4. 把数据文件data.txt中的数据加载到本地数据库中
sqlldr userid=scott/password@127.0.0.1/orcl control=data.ctl
二、sqlldr命令主要参数
userid:oracle用户名/密码
control:控制文件名
data:数据文件名
log:日志文件名
bad:错误文件名
skip:要跳过的逻辑记录的数目(默认为0)
load:要加载的逻辑记录的数目(默认全部)
sqlldr userid=scott/password@127.0.0.1/orcl control=data.ctl data=data.txt log=log.log bad=bad.log skip=1 load=1
三、控制文件说明
1. LOAD DATA
控制文件标识
2. INFILE 'data.txt'
指定要导入的数据文件为data.txt
如果使用INFILE *,表示要导入的数据就在control文件里面,即BEGINDATA后面的内容。
3. APPEND INTO TABLE TS_USER
指定数据要加载到那张表中,加载方式有下面几种:
APPEND:原表中有数据,则追加在表中
INSERT:把数据加载到空表中,如果原表中有数据则会停止加载,该项为默认值
REPLACE:如果原表中有数据,则会全部删除
TRUNCATE:如果原表中有数据,则会用truncate语句删除
4. FIELDS TERMINATED BY ','
指定数据的分割符
FIELDS TERMINATED BY WHITESPACE:以空白分割
FIELDS TERMINATED BY X'09':以制表符分割
TRAILINGNULLCOLS:表示字段没有对应值时允许为空
5. (ID, USER_NAME, PASSWORD)
表的字段
问题:
1. SQL*Loader-601: For INSERT option, table must be empty. Error on table TS_USER
使用INSERT选项导入(不填默认为INSERT选项),要求被导入的表中没有数据,可以根据具体情况把表清空或使用APPEND选项。
下一篇: python Pycon 2008消息
推荐阅读
-
Oracle中PL/SQL之常量和变量的定义、游标(光标)的使用
-
客户端 使用XML DOM加载json数据的方法_javascript技巧
-
Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用
-
在SQL 2012中使用和Oracle 一样的序列
-
在ASP中使用Oracle数据库
-
快速入门:使用Azure 数据 Studio进行连接和查询 Azure SQL 数据仓库中的数据
-
使用POI将Mysql或Oracle中的数据导入到Excel中去_MySQL
-
如何在PHP中使用Oracle数据库(4)
-
如何在PHP中使用Oracle数据库(4)
-
C# 使用OCCI 连接Oracle 数据库