【问题标题】:load data infile in mysql error在mysql错误中加载数据infile
【发布时间】:2013-10-02 07:43:23
【问题描述】:

我想对下一行有一些疑问。我想阅读一个带有文本限定符的分隔文本

LOAD DATA INFILE 'D:/teszt2.txt' into table hamburger
    Fields terminated by ',' 
    Enclosed by '"'
    lines terminated by '\n'

文件是这样的

"650000",",103","DS SMITH RECYCLING GMBH","83064 RAUBLING, KUFSTEINER STR。 27",

我首先制作了列和表格,我想将整个大文本读入其中。所有的列都是 varchar(45) 类型 但我得到一个错误:

Error Code: 1366. Incorrect string value: '\xC1NIA S...' for column 'szallito_nev' at row 1 0.000 sec

最好的问候

【问题讨论】:

  • 哪一列是 szallito_nev。你能发布表格布局吗?也是你发布的整条线的内容吗?
  • 这是“DS SMITH RECYCLING GMBH”的第 3 列,它很难发布它,因为它包含 70 列,但一开始它们都是 varchar。基本上 txt 中有一个 hedaer 行,但我把它们切断了,在我从标题标题中制作了列之后
  • 嗯。这似乎与味精不一致。它抱怨带有“'\xC1NIA S...”的字符串。十六进制 C1 是带有重音符号的 A,因此认为这可以视为特殊的“坏”字符。你能在你的输入中搜索字符串“NIA S”(没有\xC1),看看你是否有这样的行吗?然后尝试将“\xC1”更改为“A”,看看它是否加载了记录。
  • 是的,还有几行包含这些单词,我应该改变什么?因为我不太明白:S "3500000",",137","HAMBURGER RECYCLING ROMÁNIA SRL"
  • 现在我发现了问题所在!我必须将源文件转换为 unicode 8,因为它是 ASCII 之前和之后它运行顺利!

标签: mysql csv loaddata


【解决方案1】:

我在第二列中看到一个不成对的双引号 (")。可能将其余行作为字符串。

"650000",",103","DS SMITH RECYCLING GMBH","83064 RAUBLING, KUFSTEINER STR. 27",
         ^

应该是

"650000","",103","DS SMITH RECYCLING GMBH","83064 RAUBLING, KUFSTEINER STR. 27",

【讨论】:

  • 第二列的一部分是 0,103,但是当数据来自服务器时,它们会像这样显示,这就是为什么它的 ,103 可能是问题所在?
  • 我明白你说的。那么不,不要相信这是问题所在。再次查看您的答案,我发现字符串是正确的,只是看起来很有趣。将继续寻找,看看我能想出什么。对不起!
猜你喜欢
  • 1970-01-01
  • 2018-11-07
  • 2015-03-27
  • 1970-01-01
  • 2010-10-22
  • 2013-01-09
  • 2013-04-24
  • 1970-01-01
  • 2018-05-18
相关资源
最近更新 更多