zoukankan      html  css  js  c++  java
  • 使用sqlldr向Oracle导入大的文本(txt)文件

    我们有多种方法能够向Oracle数据库里导入文本文件,但假设导入的文本文件过大,比如5G,10G的文本文件,有些方法就不尽如意了。比如PLSQL Developer中的导入文本功能,假设文本文件过大。不仅导入速度太慢,中间还easy出错。这时Sqlldr就能大显身手了,Sqlldr能够每秒向Oracle插入5W条数据。能够自己定义控制文件,进行导入控制,并且导入过程不易出错,以下简易记录导入过程。

     


    1.Sqlldr导入控制文件说明

    复制代码
     1 load data 
     2 infile '/home/oracle/42.txt'                    //文本文件的绝对位置
     3 append into table doupoidx              //要导入的表名称
     4 fields terminated by ','             //分隔符定义,这里是逗号
     5 OPTIONALLY ENCLOSED BY '"'          //过滤"号
     6 TRAILING NULLCOLS               //相应字段的顺序。
     7 (
     8 time TimeStamp 'yyyy-mm-dd hh24:mi:ss',
     9 price,
    10 volume,
    11 interest
    12 )
    复制代码

    2.在Oracle用户下运行导入命令

    sqlldr  userid=scott/oracle@orcl control =/home/oracle/input.ctl       
    //username/password@实例名 control=控制文件的位置

    关于 optionally enclosed by 的小測试

    左边没引號右边有引號:成功,原样导入
    111"
    222""
    333"""

    左边有引號右边没引號:失败, second enclosure string not present
    "44
    ""555
    """666

    左右有相等的奇数个引號,成功,引號数=2n+1时导入数据带有n个引號
    "777"
    """888"""

    左右有相等的偶数个引號,失败, no terminator found after TERMINATED and ENCLOSED field
    ""999""
    """"AAA""""

    一边奇数一边偶数:失败, 错误信息为上述两种
    "BBB""
    ""CCC"
    """DDD""
    ""EEE"""

    两边不等的偶数:失败, no terminator found after TERMINATED and ENCLOSED field
    ""FFF""""
    """"GGG""

    两边不等的奇数:成功,引號数=2n+1时导入数据带有n个引號
    "HHH"""
    """III"

    总结:要么左边不能带引號;假设有引號左右都必须为奇数个

     

  • 相关阅读:
    06 | x86架构:有了开放的架构,才能打造开放的营商环境
    02 | 学习路径:爬过这六个陡坡,你就能对Linux了如指掌
    01 | 入学测验:你究竟对Linux操作系统了解多少?
    String、StringBuffer与StringBuilder区别
    JavaSE语言基础之字符串
    JavaSE语言基础之数组及其排序
    JavaSE语言基础之流程控制语句
    JavaSE语言基础之数据类型
    Java开发环境配置
    shell 脚本 自增
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7344722.html
Copyright © 2011-2022 走看看