背景:由于即将来临的双十一,业务部门(我司是做京东,天猫的短信服务),短信入库慢,需要DBA把数据库sqlload进数据库。

表结构如下:

MRS VARCHAR2(100),
STATUS VARCHAR2(8),
STATUSTJ VARCHAR2(8),
MMDD VARCHAR2(6),
SN VARCHAR2(20),
ROUTEID NUMBER(4),
RETURNTIME DATE,
RECEIVETIME DATE,
SUBMITTIME DATE,
MTYPE NUMBER(1),
SRSPAN NUMBER,
SPCODE VARCHAR2(21),
BANCHROUTE NUMBER(4),
PROVINCE VARCHAR2(20),
CITY VARCHAR2(20),
USERID NUMBER(10),
SCODE VARCHAR2(25),
UUID VARCHAR2(40)

编写控制文件:

LOAD DATA
INFILE '/u01/app/oracle/utl/daodata/rrpt/rrp_181108.txt'
APPEND
INTO TABLE S_T_RTNRP_STATUS
FIELDS TERMINATED BY ','
(
MRS,
STATUS,
STATUSTJ,
MMDD,
SN,
RETURNTIME date "YYYY-MM-DD hh24:mi:ss",
RECEIVETIME date "YYYY-MM-DD hh24:mi:ss",
ROUTEID,
SUBMITTIME date "YYYY-MM-DD hh24:mi:ss",
MTYPE,
SRSPAN,
SPCODE,
BANCHROUTE,
PROVINCE,
CITY,
USERID,
SCODE,
UUID
)

sqlldr XXX/XXX@db75 control=SqlLdr2.ctl

报错如下:

报错类似如下:

ORA-12899: value too large for column "SMART"."S_T_RTNRP_STATUS"."SCODE" (actual: 32, maximum: 25)

后面修改了表的字段,有原先varchar(20)改成varchar(50)还是报错(由于操作时间,未截图)。

怀疑是字符集的问题,经查实,操作系统的字符集是UTF8,而数据库的字符集是16gbk,导入的PROVINCE, CITY,字段为中文(如下图),后面重新的应用导出数据,不要这两个字段。

SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')

重新修改控制文件:

LOAD DATA
INFILE '/u01/app/oracle/utl/daodata/rrpt/rrp_181108.txt'
APPEND
INTO TABLE S_T_RTNRP_STATUS
FIELDS TERMINATED BY ','
(
MRS,
STATUS,
STATUSTJ,
MMDD,
SN,
RETURNTIME date "YYYY-MM-DD hh24:mi:ss",
RECEIVETIME date "YYYY-MM-DD hh24:mi:ss",
ROUTEID,
SUBMITTIME date "YYYY-MM-DD hh24:mi:ss",
MTYPE,
SRSPAN,
SPCODE,
BANCHROUTE,
USERID,
SCODE,
UUID
)

export LANG=16GBK
export nls_lang="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

sqlldr xxx/xxx  control=SqlLdr2.ctl

后成功导入30多万条记录。

oracle RAC 11g sqlload 生产表导入数据(ORA-12899)的更多相关文章

  1. Linux 上Oracle RAC 10g 升级到 Oracle RAC 11g

    了解如何在 Oracle Enterprise Linux 5 上逐步将 Oracle RAC 10g 第 2 版升级到 Oracle RAC 11g. Oracle 数据库 11g(即,新一代网格计 ...

  2. 安装Oracle RAC 11g

    1.Oracle Enterprise Linux 和 iSCSI 上构建 Oracle RAC 11g 集群 2.Oracle RAC 的所有共享磁盘存储将基于 iSCSI,iSCSI 使用在第三个 ...

  3. Oracle RAC 11g DG Broker配置和测试

    Oracle RAC 11g DG Broker配置和测试 之前在<RHEL6.4 + Oracle 11g DG测试环境快速搭建参考>已经简单说过. 本篇在实验环境中实际配置 环境: R ...

  4. oracle 批量更新之将一个表的数据批量更新至另一个表

      oracle 批量更新之将一个表的数据批量更新至另一个表 CreationTime--2018年7月3日17点38分 Author:Marydon Oracle 将一个表的指定字段的值更新至另一个 ...

  5. U8API——向U8数据库表导入数据

    一.打开API资源管理器 替换两个引用 打开应用实例,选择相应的功能 复制相应的封装类到自己的目录下 在数据库新建临时表,与目标表相同 数据导入: 思路:先将要导入的数据导入到与U8目标表相同的临时表 ...

  6. asp.net 从Excel表导入数据到数据库中

    http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...

  7. 如何获得 oracle RAC 11g asm spfile S档

     方法一: [root@vmrac1 ~]# su - grid [grid@vmrac1 ~]$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.3.0 ...

  8. mysql单表导入数据,全量备份导入单表

    (1)“导出”表 导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过--export选项将某表导出了: innobackupex --apply-log ...

  9. KingbaseES例程之拥有大量索引的表导入数据

    概述 如何快速插入大量数据比如几千万上亿的带索引的数据表. 数据准备 准备一个拥有二十个索引的数据表. kingbase=# \d+ bigtab Table "kingbase.bigta ...

随机推荐

  1. MapReduce架构与生命周期

    MapReduce架构与生命周期 概述:MapReduce是hadoop的核心组件之一,可以通过MapReduce很容易在hadoop平台上进行分布式的计算编程.本文组织结果如下:首先对MapRedu ...

  2. url 域名 主机名

    1. url = 协议//主机名(包括服务器的计算机名+域名)/路径 https:// i. cnblogs.com /index.html .com是顶级域名,从右向左,每碰到一个".&q ...

  3. 常用的CSS命名

    头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体佈局宽度:wrapper 左右中:left rig ...

  4. javascript实现选项卡切换的4种方法

    方法一:for循环+if判断当前点击与自定义数组是否匹配 <html lang="en"> <head> <meta charset="UT ...

  5. RAP开发入门-主题更换

    通过配置扩展点修改应用主题    ps:需要提前准备好主题(theme.css)文件   <!-- 注册主题扩展点 -->    <extension          point= ...

  6. NagiosQL安装

        NagiosQL和Nconf是比较好用的Nagios配置工具. 一.安装NagiosQL 1.在服务器终端运行以下命令: ##YUM安装PHP模块yum -y install --disabl ...

  7. JavaScript数组操作函数

    A: 购物车会有这样的情况,购物车是一个数组,每一个商品是一个对象,分别对应一个id,和一个num ,然后改变商品的时候需要和购物车对比,如果购物车中有这个商品的话,就只改变这个商品对应的id的num ...

  8. word2016如何英汉互译

    1.如果是一篇英文文档且是pdf格式,可以用word2016打开直接转化成了word,就算不是会员也可以的,在此附上16版的光盘安装包,可以百度自行下载 (链接:https://pan.baidu.c ...

  9. mysql备份脚本二(带日志)

    #!/bin/bashdb_PATH='/shareSAN/mysqldata/ocs/mysql_back_wjf' #备份文件保存的路径#db_DBNAME='sz_ocs' #备份的数据库名db ...

  10. EL表达式中,param和requestScope的区别

    在看param和requestScope之前,不妨先了解下在java下request的情况: 1. request对象通常用来接收客户端提交到服务端的数据,如:在servlet或者action中可以用 ...