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)

相关推荐

  • Oracle sqlldr导入一个日期列实例详解

    Oracle sqlldr导入一个日期列实例详解 1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NULLCOLS ( c2 "upper(:c2)", c3 date "yyyymmdd", c1 "SEQ_test_c1.nextval" ) BEGINDATA AAAAAAAAAA 20051201 BBBBBBBBBB 20050112 CR

  • 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 ","

  • ORACLE批量导入图片到BLOB字段代码示例

    要插入图片的表不是固定的,而且是批量插入很多张,还要考虑到因为图片的文件名错误,修改后要再次插入,此时应避免已经插入的重复执行操作, 浪费时间. 所以就选择先用一张临时表来暂时保存从文件系统读取的照片,用DBMS_LOB的方法来处理. 第一步:创建一个数据库可以访问的目录(注意:这个目录是数据库服务器上的目录,不是客户机上的) -- Create directory create or replace directory 图片目录 as 'E:\照片'; 第二步:将图片文件放入刚建好的目录下面,

  • Python批量修改文本文件内容的方法

    Python批量替换文件内容,支持嵌套文件夹 import os path="./" for root,dirs,files in os.walk(path): for name in files: #print name if name.endswith(".html"): #print root,dirs,name filename=root+"/"+name f=open(filename,"r") fileconten

  • php pdo oracle中文乱码的快速解决方法

    在/etc/profile.d/简历oracle.sh 内容如下在NLS_LANG设置编码 ORACLE_HOME=/usr/lib/oracle/12.1/client64 C_INCLUDE_PATH=/usr/include/oracle/12.1/client64 LD_LIBRARY_PATH=$ORACLE_HOME/lib #remember this is the client NLS_LANG not the server one NLS_LANG=FRENCH_FRANCE.

  • layui 上传文件_批量导入数据UI的方法

    使用layui的文件上传组件,可以方便的弹出文件上传界面. 效果如下: 点击[批量导入]按钮调用js脚本importData(config)就可以实现数据上传到服务器. 脚本: /*** * 批量导入 * config.downUrl 下载模板url * config.uploadUrl 上传文件url * config.msg * config.done 上传结束后执行. */ function importData(config){ var default_config = { msg:"数

  • oracle数据库导入导出命令使用方法

    最近做项目的时候遇到过oracle数据库导入导出,在这里我做下记录,防止自己忘记了,有什么不对或者不足的地方,欢迎广大博友拍砖,哈哈~导出命令:1)单表导出:exp 用户名/密码@服务器别名 tables=表名 file=d:\名称.dmp 复制代码 代码如下: exp jm110/jm110@120_2 tables=ajb file=d:\ajb.dmp 多张表: 复制代码 代码如下: exp jm110/jm110@120_2 tables=(ajb,jjdwb) file=d:\ajb2

  • java使用POI批量导入excel数据的方法

    一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取excel的demo 1.读取文件方法 /** * 读取出filePath中的所有数据信息 * @param filePath excel文件的绝对路径 * */ public static void getDataFromExcel(String filePath) { //String fileP

  • 在Oracle中导入dmp文件的方法

    项目开始拿到了dmp文件,数据库用的是10g的,但是尽然没导成功,后来想可能导出的时候用11导出的,决定试一下. 正好自己的机器是11的客户端,结果不识别imp命令,到安装目录下的bin文件夹下看尽然没有imp执行文件.可能装客户端的时候没选管理者装. 怎么办呢,从别的11的bin目录下的imp文件拷贝了一个放到了自己的bin下.执行还是出错,No message file for product = RDBMS,-- 类似这样的message,网上查了一下说拷一个[RDBMS\mesg]的内容

  • python创建文本文件的简单方法

    python open() 函数以指定模式打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写. w 模式表示打开一个文件只用于写入.如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除.如果该文件不存在,创建新文件. write() 方法用于向文件中写入指定字符串.在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的. 实现代码: #!/usr/bin/python # -*- coding:utf-8 -*- file = o

  • oracle数据库导入TXT文件方法介绍

    客户端连接数据库导入 1. 安装有oracle客户端,配好监听. 2. 以oracle数据库app用户的表user_svc_info为例 <span style="color:#3333ff;">CREATE TABLE USER_SVC_INFO( PHONE varchar2(20) NOT NULL, SVC_ID varchar2(32) NOT NULL, P_USERNAME varchar2(100) NULL, USER_STATUS number NOT

随机推荐