如何用SQLLDR将CSV文件导入到Oracle中

1、在数据库中创建与CSV结构相同的数据表结构。

2、创建一个文本文件,修改后缀名为【xxxx.CTL】。注意:文件路径最好不要有中文!!!

例如:在这里插入图片描述
3、在文件中根据以下参数编写内容:

options(skip=1,COLUMNARRAYROWS=20971520, ROWS=10000, READSIZE=20971520, ERRORS=20)
load data
characterset ZHS16GBK
infile 'E:\data\Test.csv'
APPEND INTO TABLE "table_name"
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
(
col1,
col2
col3,
col4
)

skip=1: 跳过CSV文件的第一行,通常用于跳过标题行。

COLUMNARRAYROWS=20971520: 指定列数组的大小,这个值为20971520,用于优化加载大量数据时的内存使用。

ROWS=10000: 指定每次提交的行数,这里为10000行。SQL*Loader在加载数据时会批量提交,以提高效率。

READSIZE=20971520: 指定读取数据的缓冲区大小,这里为20971520字节(20MB),用于优化读取性能。

ERRORS=20: 允许的最大错误数,这里设置为20,表示允许有20条错误行数,SQL*Loader将继续加载数据直到达到这个错误数为止。

characterset ZHS16GBK指定CSV文件的字符集为ZHS16GBK(需要CSV文件的字符集做修改)

INFILE :指定了CSV文件的路径。

APPEND INTO TABLE 指示将数据追加到表中。如果目标表不存在,可以使用 INTO TABLE 替代 APPEND INTO TABLE。

FIELDS TERMINATED BY ‘,’ :指定CSV文件中字段的分隔符

OPTIONALLY ENCLOSED BY ‘"’ 表示字段可能被双引号包围

TRAILING NULLCOLS 允许最后几列为空。

4、打开CMD 在CMD中执行以下语句

sqlldr username/password@SID control=load_data.ctl log=load_data.log

**例如**
sqlldr Test/Test@ORCL control=E\data\Test.ctl log=E\data\Test.log

username/password@SID 是数据库连接信息。

control=load_data.ctl 指定控制文件。

log=load_data.log 指定日志文件,记录SQL*Loader的执行过程和结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值