使用sqlldr导入文本数据到oracle

1.sqlldr介绍

用法: SQLLDR keyword=value [,keyword=value,...]
 
有效的关键字:
 
    userid -- ORACLE 用户名/口令       
   control -- 控制文件名               
       log -- 日志文件名                   
       bad -- 错误文件名                  
      data -- 数据文件名                 
   discard -- 废弃文件名
discardmax -- 允许废弃的文件的数目         (全部默认)
      skip -- 要跳过的逻辑记录的数目  (默认 0)
      load -- 要加载的逻辑记录的数目  (全部默认)
    errors -- 允许的错误的数目         (默认 50)
      rows -- 常规路径绑定数组中或直接路径保存数据间的行数
               (默认: 常规路径 64, 所有直接路径)
  bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)
    silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)
    direct -- 使用直接路径                     (默认 FALSE)
   parfile -- 参数文件: 包含参数说明的文件的名称
  parallel -- 执行并行加载                    (默认 FALSE)
      file -- 要从以下对象中分配区的文件    
skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)
skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)
commit_discontinued -- 提交加载中断时已加载的行  (默认 FALSE)
  readsize -- 读取缓冲区的大小               (默认 1048576)
external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE  (默认 NOT_USED)
columnarrayrows -- 直接路径列数组的行数  (默认 5000)
streamsize -- 直接路径流缓冲区的大小 (以字节计)  (默认 256000)
multithreading -- 在直接路径中使用多线程
 resumable -- 启用或禁用当前的可恢复会话  (默认 FALSE)
resumable_name -- 有助于标识可恢复语句的文本字符串
resumable_timeout -- RESUMABLE 的等待时间 (以秒计)  (默认 7200)
date_cache -- 日期转换高速缓存的大小 (以条目计)  (默认 1000)
no_index_errors -- 出现任何索引错误时中止加载  (默认 FALSE)
 
PLEASE NOTE: 命令行参数可以由位置或关键字指定
。前者的例子是 'sqlldr
scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo
userid=scott/tiger'。位置指定参数的时间必须早于
但不可迟于由关键字指定的参数。例如,
允许'sqlldr scott/tiger control=foo logfile=log', 但是
不允许'sqlldr scott/tiger control=foo log', 即使
参数'log' 的位置正确。

2.实战

先有需求:

将000000_0.txt文件导入oracle数据库

000000_0.txt大小:123MB,几十万行

000000_0.txt内容格式:

20160514|未知|未知|未知|3G|057431041116|55349|41116|28173301261774|460007863660008|1.224609375|13.0|\N|\N
20160514|HTC|手机|D728w|3G|057431001157|55097|1157|35153907023514|460006620667069|0.513671875|10.0|\N|\N
20160514|HTC|手机|D728w|3G|057431043861|55084|43861|35153907033487|460027685036740|2937.208984375|8052.0|\N|\N
20160514|HTC|手机|D728w|3G|057431003011|55084|3011|35153907033487|460027685036740|1.755859375|56.0|\N|\N


导入的数据库表结构:


create table TEST201605
(SHI_JIAN,ZDCS,ZDFL,ZDXH,XQWLLX,XQWYBH,LAC,CI,IMEI,IMSI,THREEG_LL,THREEG_SZ,FOURG_LL
)



2.1编写控制文件 load.ctl:

load data
CHARACTERSET UTF8  //查看下文件的编码,设为同一个编码
infile "E:\datafile\000000_0.txt"   //只能一个个导入,可以把多个文件合并到一个里,然后导入
append
into table TEST201605
fields terminated by '|'
trailing nullcols
(
    --"时间",
    SHI_JIAN,
    ZDCS,
    ZDFL,
    ZDXH,
    XQWLLX,
    XQWYBH,
    LAC,
    CI,
    IMEI,
    IMSI,
    THREEG_LL,
    THREEG_SZ,
    FOURG_LL
)


2.2 windows下

dos命令窗,cd 到load.ctl所在目录

使用命令:

sqlldr daily/mdasil@daily-74 control=load.ctl log=log.log bad=bad.log errors=5000 rows=1000 bindsize=10485760


linux:


load data
CHARACTERSET UTF8
infile "/datafile-import/000021_0.txt"
append
into table jingfen_201605_1415
fields terminated by '|'
trailing nullcols
(
    SHI_JIAN,
    ZDCS,
    ZDFL,
    ZDXH,
    XQWLLX,
    XQWYBH,
    LAC,
    CI,
    IMEI,
    IMSI,
    THREEG_LL,
    THREEG_SZ,
    FOURG_LL
)


oracle用户下执行:


sqlldr daily/mdasil control=/datafile-import/ctl/44.ctl log=/datafile-import/log/log20160526.log  bad=/datafile-import/log/bad20160526.log


rows与bindsize相关,rows默认64行,如果不修改bindsize,只修改rows无效。

bindsize --( 每次提交记录的缓冲区的大小,字节为单位,默认256000)


dos窗口会打印:

达到提交点 - 逻辑记录计数 441884
达到提交点 - 逻辑记录计数 441954
达到提交点 - 逻辑记录计数 442024
达到提交点 - 逻辑记录计数 442094


sqllder 导入的时候,不支持中文列名,因为文件里的都是string,导入的表字段也要 字符串 类型 。

(可以控制类型,但是如果数据内容格式不对,导入出错就比较麻烦,还是以string文本导入后,再修改表结构)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac os区别_SN及Mac地址烧录

platform:RK3399 OS:Android 7.1 参考: 1.比特人生 https://blog.csdn.net/ielife/article/details/86719313 2.KrisFei https://blog.csdn.net/kris_fei/article/details/79447343?ops_request_misc%257B%2522request%255Fid%2522%253A%2522158883304619726869022990%2522%25…

linux 查看数据库和表 mysql 命令

2019独角兽企业重金招聘Python工程师标准>>> 查看是否有安装数据库 :rpm -qa|grep -i mysql 如图已安装: 未安装: 查看MySQL版本的四种方法 1 在终端下执行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看…

php mvc 逻辑层在哪,mvc的业务逻辑应该放哪里?

背景: 基于laravel的后台管理系统,CURD密集型业务问题:当直接在控制器方法中调用orm处理业务逻辑时,代码复用性差,控制器层很肥尝试解决1:新建一个model层,将原先在控制器中的处理逻辑移到mode…

servlet/filter/listener/interceptor区别与联系

下面从几个方面阐述一下题目中四个概念的区别与联系: 1、概念 2、生命周期 3、职责 4、执行过程 一、概念: 1、servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页…

电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...

原标题:袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐痘痘下去了,痘印却顽固不化。有些痘印如果不及时修复,会留下疤痕和坑。我们真的不敢去想他们。所以有痘印痘印的时候一定要及时使用护肤品,不要在脸上留下什么遗憾&…

python中集合符号,Python 集合符号

Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示解决方法: 转自 http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html http://jingyan.baidu.com/artic ...AJAX学习AJAX即“Asynchronous Javascript And XML”(异…

五阿哥钢铁电商平台Docker容器云平台建设实践——你想知道的都在这里!

前言 五阿哥钢铁电商平台(www.wuage.com)是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造,并充分运用双方股东优势资源,即:阿里巴巴在大数据、电商运营、互联网产品技术上的巨大优势,尤其是在B2…

oracle数据导入导出

一、exp/imp与expdp/impdp的区别 1:把用户usera的对象导到用户userb,用法区别在于fromuserusera touseruserb ,remap_schemausera:usera 。例如 imp system/passwd fromuserusera touseruserb file/oracle/exp.dmp log/oracle/exp.log; impdp system/passwd directo…

web浏览器_Web上的分享(Share)API

我认为Web Share API非常酷,简而言之,它会利用您所使用的平台上的原生共享功能(如果该平台支持的话)。我喜欢这个:在iOS上激活的Web Share API远远不止这些东西:为什么?Web Share API只是几行代码。简单!没…

Oracle视图添加约束,Oracle创建视图的语法

Oracle创建视图的语法导读:就爱阅读网友为大家分享了多篇关于 "oracle 创建序列语法" 资料,内容精辟独到,非常感谢网友的分享,希望从中能找到对您有所帮助的内容。相关资料一 : Oracle 创建视图的语法Oracle 创建视图的…

linux压缩和解压缩命令

tar命令解包:tar zxvf FileName.tar打包:tar czvf FileName.tar DirNamegz命令解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩&a…

【Java进阶】Java Lambda 表达式、Stream API完整梳理

一、Lambda表达式 Lambda 表达式是一种匿名函数,它可以用来定义函数式接口的实现。Lambda 表达式可以用来简化代码,提高代码的可读性和可维护性。 1、Lambda 表达式 1.1、语法介绍 Lambda 表达式的语法如下: (parameters) -> express…

使用T-SQL语句操作数据表-删除数据

1.使用 delete 语句删除表中的数据&#xff1a;语法&#xff1a;delete from <表名> [where <删除条件>]delete 是删除的意思 where是选填内容可以不加&#xff0c;但是不加条件的话是删除整个表 例子&#xff1a;delete from 成绩表 where 姓名张三含义&#xff1…

Oracle expdp/impdp导出导入命令及数据库备份

经常报错&#xff1a; ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation 解决方法&#xff1a; 1、 CREATE OR REPLACE DI…

exfat单元分配要设置多少_微软宣布,支持往Linux内核里添加exFAT存储了!跨系统存储的福音...

栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAIexFAT&#xff0c;是微软开发的文件系统&#xff0c;为闪存而生。你的U盘、SD卡、手机等等存储设备&#xff0c;能存4G以上的大文件&#xff0c;很大程度上是它的功劳。可exFAT一直是专有的&#xff0c;微软手握多项专利。所以&am…

在linux中安装oracle中文包,在Linux命令行下安装Oracle 10g

Oracle 10g支持在命令行下用静默模式(Silent)安装&#xff0c;给那些没有安装图形界面的Linux系统提供了极大的便利。下面以Fedora Core 6为例&#xff0c;介绍在命令行下安装OracleOracle 10g的方法。1 安装前的准备准备工作要用登录为root用户来进行。1.1 选择安装环境的语言…

Jetbrains 系 IDE 编辑器的代码提示功能

著名的 Jetbrains 可谓编程界的一大福音&#xff0c;众多有名代码编辑器比如 ItelliJ IDEA、PHPStorm、WebStorm、PyCharm 等&#xff0c;均出自这家公司麾下。 对于中国的Java开发者来说&#xff0c;可能使用 Eclipse 的人最多。 使用Idea的程序员也不少, 而且每个人都在鼓吹其…

Oracle下的Databse,Instance,Schemas

1、DATABASE&#xff0c;对oracle而言&#xff0c;是指物理上的数据库&#xff0c;一般你安装了一个oracle的数据库软件后&#xff0c;就是一个database。 2、instance&#xff0c;在同一个数据库上&#xff0c;可以建立多个实例&#xff0c;这些实例互相不干扰&#xff0c;每个…

oracle实验数据库和表,1oracle创建数据库和表.doc

1oracle创建数据库和表.doc实验一&#xff1a;创建数据库和表一、实验目的1. 掌握使用DBCA创建数据库2. 掌握手工创建Oracle数据库的方法3. 掌握创建数据表的方法二、实验内容及步骤1. 使用DBCA创建数据库(1) 打开DBCA组件,创建数据库sale.(2) 安装完后进入D:\oracle\product\1…

tkmybatis 子查询_真假童子命符箓道长教你如何查询

童子命查询方法一&#xff1a;童子命在相术里&#xff0c;指的是一生都霉运连连如过本命年的人。古代关于真童子命查询有口诀“春秋甲寅子&#xff0c;冬夏卯未辰&#xff1b; 金木乙卯未&#xff0c;水火庚辛壬&#xff1b; 土命逢辰巳&#xff0c;童子定为真”解释上面的口诀…