参考如下:
参考-sqlldr01_qq_42682872的博客-CSDN博客
1、sqlldr 导入命令
-- soctt/soctt 账号密码 moup 库名
sqlldr userid=soctt/soctt@moup
-- 这个是表的字段,参考下列的字段
control=/home/BOMC_INFORMATION.ctl
--记录sqlldr调用日志
log=/home/BOMC_INFORMATION.log
-- 错误的数据文件记录
bad=/home/BAD_BOMC_INFORMATION.log
--错误条数
errors=10000000
-- -- 表示每次提交记录缓冲区的大小,默认256k
bindsize=200000
--禁止输出信息(header,feedback,errors,discards,partitions)
silent=HEADER
--直接路径加载:direct=true。直接加载全部记录,提高速度。但是此方法有个副作用,就是会使索引失效
direct=TRUE
--执行并行加载
parallel=TRUE
--没有维护索引, 将受到影响的索引标记为无用
SKIP_INDEX_MAINTENANCE=TRUE
--读取缓冲区的大小
readsize=20000000
--使用外部表进行加载
external_table=NOT_USED
--直接路径列数组的行数
columnarrayrows=20000
--直接路径流缓冲区的大小 (以字节计)
streamsize=20000000
2、control=/home/BOMC_INFORMATION.ctl
#语法
load data
infile '/home/app/1.txt' "str X'7C0A'" | fix | var # 分隔符有 str、fix、var
append into table dept30 fields terminated by ',' # 导入到具体的表 分割符号是逗号 append | replace | insert | truncate
TRAILING NULLCOLS # 表的字段没有对应的值时允许为空
(DEPTNO "trim(:DEPTNO)",
DNAME "trim(:DNAME )",
LOC char(600) "trim(:LOC )") # 超过255的长度,就需要做真实长度
append | replace | insert | truncate
APPEND #原先的表有数据 就加在后面
INSERT #装载空表 如果原先的表有数据 sqlloader会停止 默认值
REPLACE #原先的表有数据 原先的数据会全部删除
TRUNCATE #指定的内容和replace的相同 会用truncate语句删除现存数据
"str X'7C0A'" | fix | var
"fix 30" #表示取30字符包括隐形换行符( /n两个字符)作为一行数据;连续向后取包括取一行结束后遇到换行符也算在另一行内
"var 2" #第一行以数据开头前两个字符做fix取值参数(取值从这两个数字向后开始,只取一行结束,取值方式和fix一样),第一行结束后面两个字符作为下一行取值范围(换行符算在内)
#形式一
# 数据文件的路径
load data infile '/home/app/1.txt'
# 导入到具体的表 分割符号是 逗号
append into table dept30 fields terminated by ','
#表字段
TRAILING NULLCOLS
(DEPTNO "trim(:DEPTNO)",
DNAME "trim(:DNAME )",
LOC char(600) "trim(:LOC )") -- 超过255的长度,就需要做真实长度
#形式二
# 数据文件的路径
load data infile '/home/app/1.txt' str X '0x0f'
# 导入到具体的表 分割符号是 逗号
append into table dept30 fields terminated by ','
#表字段
TRAILING NULLCOLS
(DEPTNO "trim(:DEPTNO)",
DNAME "trim(:DNAME )",
LOC char(600) "trim(:LOC )") -- 超过255的长度,就需要做真实长度
####具体参数
Keyword 默认值 描述
userid ORACLE 用户名/口令
control 控制文件名
log 日志文件名
bad 错误文件名
data 数据文件名
discard 废弃文件名
discardmax 全部 允许废弃的文件的数目
skip 0 要跳过的逻辑记录的数目
load 全部 要加载的逻辑记录的数目
errors 允许的错误的数目
rows 常规:64 默认路径:全部 常规路径绑定数组中或直接路径保存数据间的行数
bindsize 256000 常规路径绑定数组的大小
direct FALSE 使用直接路径
parfile 参数文件: 包含参数说明的文件的名称
parallel FALSE 执行并行加载
file 执行文件
skip_unusable_indexes FALSE 不允许/允许使用无用的索引或索引分区
skip_index_maintenance FALSE 没有维护索引, 将受到影响的索引标记为无用
commit_discontinued FALSE 提交加载中断时已加载的行
readsize 1048576 读取缓冲区的大小
external_table NOT_USED 使用外部表进行加载;
NOT_USED, GENERATE_ONLY, EXECUTE
columnarrayrows 5000 直接路径列数组的行数
streamsize 256000 直接路径流缓冲区的大小 (以字节计)
multithreading 在直接路径中使用多线程
resumable FALSE 启用或禁用当前的可恢复会话
resumable_name 有助于标识可恢复语句的文本字符串
resumable_timeout 7200 RESUMABLE 的等待时间 (以秒计)
date_cache 1000 日期转换高速缓存的大小 (以条目计)
转载:原文链接:https://blog.csdn.net/a545812327/article/details/102666185