oracle通过.txt文件导入百万数据,效率高

您所在的位置:网站首页 将sql文件导入oracle数据库 oracle通过.txt文件导入百万数据,效率高

oracle通过.txt文件导入百万数据,效率高

2023-07-04 11:03| 来源: 网络整理| 查看: 265

最近在项目遇到了oralce需要导入50多万条数据的需求,使用insert语句1万条数据差不多最快需要30秒,那么50次呢...效率太低。通过在网上查阅资料找到了一个比较高效的方法。具体操作如下:

1. 需要导入数据的表先创建好

比如说需要导入数据的表BJ_TD_TXBH有2列,字段为GUID、TXBH。

创建表的sql(没有考虑添加主键,如果添加主键GUID,那么要确保导入50万条的数据GUID唯一)

-- Create table create table BJ_TD_TXBH ( GUID varchar2(50), TXBH varchar2(50) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 8 minextents 1 maxextents unlimited ); -- Add comments to the columns comment on column BJ_TD_TXBH.GUID is 'GUID'; comment on column BJ_TD_TXBH.TXBH is '图形编号';

创建完成之后,查询没有数据。

2.创建好表之后,将需要导入的2列数据保存到.txt文件,使用逗号隔开。

txt文件插入13000条数据

将需要导入的2列数据排列格式效果如图(文件名为txbh.txt):

tip:

因为我这边提供的数据是从excel复制过来的,怎么将50多万条数据GUID和TXBH中间加逗号呢? 方法如图:

3.编写自动入库脚本.ctl --编写 insert.ctl 文件 load data characterset utf8 INFILE 'D:/sql/txbh.txt' Append into table bj_td_txbh fields terminated by "," ( guid,txbh )

上效果图,并语法解释:

编写好.ctl文件和.txt文件之后,放入到D:/sql文件中。

4.执行脚本

执行脚本语法:

sqlldr userid=用户名/密码@数据库实例名 control=脚本名

执行结果(测试插入了13000条数据):

5.注意事项

1.当时在服务器操作的时候,使用记事本打开.ctl文件之后可能会损坏文件格式,执行脚本会报错。建议使用编译器或者notepad++来进行操作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3