oracle RAC 11g sqlload 生产表导入数据(ORA-12899)
背景:由于即将来临的双十一,业务部门(我司是做京东,天猫的短信服务),短信入库慢,需要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)的更多相关文章
- Linux 上Oracle RAC 10g 升级到 Oracle RAC 11g
了解如何在 Oracle Enterprise Linux 5 上逐步将 Oracle RAC 10g 第 2 版升级到 Oracle RAC 11g. Oracle 数据库 11g(即,新一代网格计 ...
- 安装Oracle RAC 11g
1.Oracle Enterprise Linux 和 iSCSI 上构建 Oracle RAC 11g 集群 2.Oracle RAC 的所有共享磁盘存储将基于 iSCSI,iSCSI 使用在第三个 ...
- Oracle RAC 11g DG Broker配置和测试
Oracle RAC 11g DG Broker配置和测试 之前在<RHEL6.4 + Oracle 11g DG测试环境快速搭建参考>已经简单说过. 本篇在实验环境中实际配置 环境: R ...
- oracle 批量更新之将一个表的数据批量更新至另一个表
oracle 批量更新之将一个表的数据批量更新至另一个表 CreationTime--2018年7月3日17点38分 Author:Marydon Oracle 将一个表的指定字段的值更新至另一个 ...
- U8API——向U8数据库表导入数据
一.打开API资源管理器 替换两个引用 打开应用实例,选择相应的功能 复制相应的封装类到自己的目录下 在数据库新建临时表,与目标表相同 数据导入: 思路:先将要导入的数据导入到与U8目标表相同的临时表 ...
- asp.net 从Excel表导入数据到数据库中
http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...
- 如何获得 oracle RAC 11g asm spfile S档
方法一: [root@vmrac1 ~]# su - grid [grid@vmrac1 ~]$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.3.0 ...
- mysql单表导入数据,全量备份导入单表
(1)“导出”表 导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过--export选项将某表导出了: innobackupex --apply-log ...
- KingbaseES例程之拥有大量索引的表导入数据
概述 如何快速插入大量数据比如几千万上亿的带索引的数据表. 数据准备 准备一个拥有二十个索引的数据表. kingbase=# \d+ bigtab Table "kingbase.bigta ...
随机推荐
- Python 中文注释报错解决方法
代码中一旦有了中文注释便会报错. 原因 如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明. 解决方法 在第一行或是第二行加入这么一句# -- coding: utf-8 -- 完美解决
- highcharts例子
直接看代码 <script language="JavaScript"> $(document).ready(function() { $.ajax({ type:'p ...
- WPF 创建用户控件并引用
项目源码地址:https://github.com/lizhiqiang0204/WpfControlLibrary.git 首先创建新项目->WPF用户控件库项目 在UserControl1. ...
- Kattis -Safe Passage(撑伞问题)
Safe Passage Photo by Ian Burt A group of friends snuck away from their school campus, but now they ...
- Pyhton学习——Day1
1.什么是机器码?什么是字节码?机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计 ...
- tomcat 配置 https 几点注意
1.修改server.xml时候把注释的改改就好,不要添加,免得杂乱. 2.安装openssl openssl-devel autoconf libtool apr tomcat-native 才行. ...
- a标记地址的几种用法
1.<a href="tel://号码"></a> 手机使用能自动拨打电话 //可以省略 2.<a href="mailto://邮箱&qu ...
- 网络教程(2)光纤和RF编码简介
光纤: 想象一个symbol是light off 另一个是light on 另一种传输信息的方式using radio waves(无线电波: 这个router 内部以很高的频率变换电压 (例如2.4 ...
- nyoj158-省赛来了
省赛来了 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 一年一度的河南省程序设计大赛又要来了. 竞赛是要组队的,组队形式:三人为一队,设队长一名,队员两名. 现在问题就 ...
- 训练1-R
给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和. 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1.3 + 7 + 9 = ...