sqlldr 导入有逗号的文本格式入库

本文档介绍了如何使用SQL*Loader将包含逗号的文本数据导入Oracle数据库。步骤包括创建表、编写.ctl文件,以及解决Windows与Linux编码不一致问题和检查逗号是否为英文。此外,还提到了并发操作和使用nologging以提高大量数据加载效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.建表

2.创建ora.ctl
在这里插入图片描述
load data
infile ‘测试.txt’
replace into table test08
( id char terminated by ‘,’,
USERNMAE char terminated by ‘,’,
mobile char terminated by ‘,’,
identified_card char terminated by ‘,’,
address char terminated by whitespace
)

3.把xls的excel 另存为csv,打开csv,另存为utf-8的记事本文件上传到linux

4.执行语句
sqlldr userid=datawork/123@orclpdb control=ora.ctl log=./imptable/load.log

遇到的问题:
打开的txt为乱码,是windows的编码格式为gbk,linux为utf-8,需要在windows上编码为utf-8;或者inconv设置编码
在这里插入图片描述

检查ctl文件和txt文件的逗号是否为英文 “,”

检查用户的默认表空间是否为指定表空间,是否有使用权
在这里插入图片描述
查询:select username,default_tablespace from dba_users where username=‘DATAWORK’;
格式:alter user datawork quota unlimited on users;

并发操作:
 sqlldr userid=/ control=result1.ctl direct=true parallel=true
sqlldr userid=/ control=result2.ctl direct=true parallel=true
sqlldr userid=/ control=result2.ctl direct=true parallel=true

当加载大量数据时(大约超过10GB),抑制日志的产生:
  SQL>ALTER TABLE RESULTXT nologging;
这样不产生REDO LOG,可以提高效率。然后在CONTROL文件中load data上面加一行:unrecoverable
此选项必须要与DIRECT共同应用。
  在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到1-10G就算不错了,开始可用结构
相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费。

参考答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值