SQL> desc emp_enc
Name Type Nullable Default Comments
----- ------------ -------- ------- --------
ENAME VARCHAR2(10) Y
EMPNO NUMBER(4) Y
SAL NUMBER(7,2) Y
需要导入的 txt文件,以逗号分隔
load.txt
aa,1,100
cc,2,222
dd,3,221
js,4,231
jdj,38,282892(这天记录长度过长,所以待会会导入失败)
sqlload 控制文件所要用到的参数
OPTIONS (skip=1,rows=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行
LOAD DATA
INFILE "users_data.csv" --指定外部数据文件,可以是不同格式的数据文件,如csv、txt都支持
可以写多个 INFILE "another_data_file.csv" 指定多个数据文件
truncate --操作类型,用 truncate table 来清除表中原有记录,根据情况而定是否需要清楚原有表中数据
INTO TABLE users --要插入记录的表
Fields terminated by "," --数据中每行记录用 "," 分隔
Optionally enclosed by '"' --数据中每个字段用 '"' 框起,比如字段中有 "," 分隔符时
trailing nullcols --表的字段没有对应的值时允许为空
(
virtual_column FILLER, --这是一个虚拟字段,用来跳过由 PL/SQL Developer 生成的第一列序号
user_id number, --字段可以指定类型,否则认为是 CHARACTER 类型, log 文件中有显示
user_name,
login_times,
last_login DATE "YYYY-MM-DD HH24:MI:SS" -- 指定接受日期的格式,相当用 to_date() 函数转换
)
insert --为缺省方式,在数据装载开始时要求表为空
append --在表中追加新记录
replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录
根据上面的参数写入到一个文本,(将原表truncate后,再插入)
LOAD DATA
INFILE 'D:\ load.txt'
INTO TABLE test
TRUNCATE
fields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
C: >sqlldr scott/tiger@ab control= D:\ c ontrol.txt log= D:\ log.txt bad=D: \load\bad.txt
SQL*Loader: Release 11.2.0.1.0 - Production on 星期五 11月 20 15:19:07 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
达到提交点 - 逻辑记录计数 4
达到提交点 - 逻辑记录计数 5
导入成功,违规的记录放在bad.txt里
SQL> select * from emp_enc;
ENAME EMPNO SAL
---------- ----- ---------
aa 1 100.00
cc 2 222.00
dd 3 221.00
js 4 231.00
修改控制文件,不请空原表,再导入,会报错
LOAD DATA
INFILE 'D:\load.txt'
INTO TABLE test
fields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
SQL*Loader-601: 对于 INSERT 选项, 表必须为空。表 EMP_ENC 上出错
需要修改控制文件
LOAD DATA
INFILE 'D:\load.txt'
APPEND INTO TABLE testfields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
sqlload的用法: sqlload keyword=value [,keyword=value,...]
有效的关键字:
userid -- ORACLE 用户名/口令
control -- 控制文件名
log -- 日志文件名
bad -- 错误文件名
data -- 数据文件名
discard -- 废弃文件名
discardmax -- 允许废弃的文件的数目 (全部默认)
skip -- 要跳过的逻辑记录的数目 (默认 0)
load -- 要加载的逻辑记录的数目 (全部默认)
errors -- 允许的错误的数目 (默认 50)
rows -- 常规路径绑定数组中或直接路径保存数据间的行数
(默认: 常规路径 64, 所有直接路径)
bindsize -- 常规路径绑定数组的大小 (以字节计) (默认 256000)
silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)
direct -- 使用直接路径 (默认 FALSE)
parfile -- 参数文件: 包含参数说明的文件的名称
parallel -- 执行并行加载 (默认 FALSE)
file -- 要从以下对象中分配区的文件
skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区 (默认 FALSE)
skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用 (默认 FALSE)
commit_discontinued -- 提交加载中断时已加载的行 (默认 FALSE)
readsize -- 读取缓冲区的大小 (默认 1048576)
external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE (默认 NO
T_USED)
columnarrayrows -- 直接路径列数组的行数 (默认 5000)
streamsize -- 直接路径流缓冲区的大小 (以字节计) (默认 256000)
multithreading -- 在直接路径中使用多线程
resumable -- 启用或禁用当前的可恢复会话 (默认 FALSE)
resumable_name -- 有助于标识可恢复语句的文本字符串
resumable_timeout -- RESUMABLE 的等待时间 (以秒计) (默认 7200)
date_cache -- 日期转换高速缓存的大小 (以条目计) (默认 1000)
no_index_errors -- 出现任何索引错误时中止加载 (默认 FALSE)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27500440/viewspace-1842094/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27500440/viewspace-1842094/