【oracle sqlldr 导入 txt csv大文件】

oracle sqlldr 导入 txt csv大文件

一、首先用 DBeaver 开源免费数据库连接客户端工具根据txt 或csv 文件生成建表 sql ,(DBeaver 的数据导入组件,我见过的比较简单易懂强大的数据导入组件)建立导入数据的对应表。最好先用 DBeaver 慢速导入几千行或几万行测试表和数据是否对应,然后再用sqlldr 快速导入大文件。用 DBeaver 生成表 ddl ,删除有已有测试数据的表,重新用ddl 语句建立表,这样表是空的,而且速度快,比 delete from 快很多。

在这里插入图片描述
导入时注意 修改 参数。

二、写 ctl 文件

--导入语句
--sqlldr userid=xxx/oracle@127.0.0.1:1521/orcl control= C:\Users\king\Desktop\tablename.ctl direct=true parallel=true log= C:\Users\king\Desktop\tablename.txt
--此文件为 utf-8 字符 ,这些注释并不影响数据导入
-- sqlldr3种导入方式,这里用的第三种最快的。
--1、这里先介绍基本的导入方式,
--2、然后介绍direct导入方式,(直接路径导入方式)
--3、最后介绍parallel导入方式。(并行导入方式)

--第一种和第二种的区别:
--options中的BINDSIZE换成了COLUMNARRAYROWS,
--因为BINDSIZE是常规路径绑定数组的大小,
--而COLUMNARRAYROWS是直接路径列数组的行数。
--第三种必须在第二种的基础上

options(skip=1,COLUMNARRAYROWS=10000, READSIZE=20971520, ERRORS=999999999)
--skip 1 ,表示跳过第一行是标题或其他
--columnarrayrows 直接路径列数组的行数 (默认 5000),根据内存大小修改
--readsize 读取缓冲区的大小 (默认 1048576)
load data
infile 'C:\Users\king\Desktop\tablename.csv'
append  -- 追加的方式 导入表 还有 insert默认方式 、replace(等价delete from table语句) 、truncate(等价truncate table语句)
into table "tablename"  --修改表名(windows测试表名可以小写)
Fields terminated by ','  -- 逗号分割
--FIELDS TERMINATED BY X'09'           --(Tab分隔符)
Optionally enclosed by '"'  --字段用 “  包裹
--如果导入的字段存在空值,这个是必须的,否则报 350 错误。
TRAILING NULLCOLS  -- 允许为空的字段
(ID, 
ZHLB
 )

三、 导入数据

sqlldr userid=xxx/oracle@127.0.0.1:1521/orcl control= C:\Users\king\Desktop\tablename.ctl direct=true parallel=true log= C:\Users\king\Desktop\tablename.txt
在这里插入图片描述

参数解释:
direct=true
直接导入数据
parallel=true
并行导入数据

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq464917671

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值