首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单焦耳被视为二焦耳。

单焦耳被视为二焦耳。
EN

Stack Overflow用户
提问于 2014-11-20 07:30:38
回答 2查看 149关注 0票数 0

当使用SQL Loader将CSV文件(从Excel生成)上载到Oracle数据库时,我有以下错误:

记录1:拒绝-表TBL01上的错误,列性别。 ORA-12899:值过大,列“TST”.“TBL01”.“性别”(实际值: 2,最大值: 1)

请指导我正确的方式来编码控制文件。

CSV文件内容

控制文件内容

代码语言:javascript
复制
LOAD DATA
CHARACTERSET AL32UTF8
INFILE TBL01.csv 
INTO TABLE TBL01
FIELDS TERMINATED BY ',' 
(ID, INITIALS, GENDER)

TBL01结构

代码语言:javascript
复制
Name   Null Type         
------ ---- ------------ 
ID          NUMBER       
INITIALS    VARCHAR2(30) 
GENDER      CHAR(1)    
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-17 07:19:48

来自@Multisync的讨论:

他/她建议(这是可行的,但对我的情况所涉及的许多修改):

最简单的解决方案是在每一行的最后一列后面加上逗号。 通常一条csv线看起来是: 1,3,4,5,6; 在这种情况下,可以在控制文件中使用以“;”结尾的字段

最后,在我的控制文件中添加了另一行,并解决了问题,因为每个csv行的末尾都有回车。

代码语言:javascript
复制
    LOAD DATA
    CHARACTERSET AL32UTF8
    INFILE TBL01.csv 
    INTO TABLE TBL01
    FIELDS TERMINATED BY ',' 
    (ID, 
     INITIALS, 
     GENDER  TERMINATED BY '\r')
票数 0
EN

Stack Overflow用户

发布于 2014-11-20 15:06:00

如果有多余的空格,试着修剪一下,但我怀疑字符可能是个问题?我没有这方面的经验,但是如果您使用的是一个2字节的字符集,并且试图将它放在表中的一个字节中,那么这可能是一个问题吗?无论如何要核实的东西。确保数据库使用的字符集与在控制文件中指定的字符集相同。

代码语言:javascript
复制
LOAD DATA
CHARACTERSET AL32UTF8
INFILE TBL01.csv 
INTO TABLE TBL01
FIELDS TERMINATED BY ',' 
(ID, 
 INITIALS, 
 GENDER "TRIM(:GENDER)"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27034097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档