java oracle sqlldr,Oracle批量导入文本文件快速的方法(sqlldr实现)

前言

最近做项目的时候需要导入一批3000多万条的POI数据到Oracle数据库,简单的插入导入速度太慢,使用sqlldr 批量导入3000多万条数据花了20分钟左右,速度还可以,现在分享给大家,具体方法如下:

1.新建导入控制文件 input.ctl,文件内容如下:

Load data

Characterset UTF8

Infile 'H:\POI\baidu.txt'

Append into table tbl_poi_baidu

fields terminated by ","

Optionally enclosed by '""'

Trailing nullcols

(POI_NAME,CLASS_ALL,ADDR,PHONE,TEL,LONGITUDE,LATITUDE,CITY,CITYCODE,PROVINCE,DISTRICT,STREET,STREENUMBER,CLASS_1,CLASS_2,CLASS_3,CLASS_4)

2.命令行窗口输入:

sqlldr userid=sde/sde control=input.ctl log=log.out discard=discard.txt errors=1000000

注意:文件字符集要与Oracle服务等字符集一致,建议文件另存为UTF-8无BOM,导入文件内添加 Characterset UTF8,解决Oracle数据导入中文乱码:export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'

DOS环境下文件快速合并:copy *.csv newfile.txt

总结

以上就是这篇文章的全部内容,希望能对大家学习或者使用Oracle数据库有所帮助,如有有疑问大家可以留言交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用OracleSQL*Loader工具来批量导入SQL文件。SQL*Loader是Oracle数据库中用于高速加载大量数据的实用程序。 以下是一个简单的步骤来批量导入SQL文件: 1. 准备数据文件:将所有要导入SQL语句保存在一个文本文件中,每个SQL语句占一行。 2. 创建一个控制文件:控制文件是告诉SQL*Loader如何加载数据的文件。您可以使用一个文本编辑器创建一个控制文件,指定数据文件的位置、表名、列名等信息。下面是一个示例控制文件的内容: ``` LOAD DATA INFILE 'data.sql' INTO TABLE my_table FIELDS TERMINATED BY ';' -- 根据您的SQL文件的分隔符进行调整 TRAILING NULLCOLS ( column1, column2, column3 ) ``` 3. 运行SQL*Loader:打开命令行终端,导航到Oracle安装目录下的bin文件夹。然后运行以下命令: ``` sqlldr userid=your_username/password control=control_file.ctl log=log_file.log ``` 将`your_username`和`password`替换为您的Oracle数据库的用户名和密码,`control_file.ctl`替换为您创建的控制文件的路径和文件名,`log_file.log`替换为日志文件的路径和文件名。 4. 检查日志文件:SQL*Loader将生成一个日志文件,其中包含加载过程中的任何错误或警告信息。打开日志文件,检查是否有任何问题需要解决。 这样,您就可以使用SQL*Loader工具批量导入SQL文件到Oracle数据库中了。请注意,您需要正确配置控制文件以匹配SQL文件的格式和数据库表的结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值