用LOAD DATA 导入数据,第一个字符总是被截断

时间:2022-03-05 09:34:39
新手,
需要用load data 导入 公司数据,第一列为 日期 ,格式为字符 如 “201507”,
我在建表时定义第一列为6位的字符串,如  s_month  varchar(6) , 导入数据语句
Load Data InFile 'D:/1/2015-821.csv' Into Table `ori_2015_821` fields terminated by ',' lines terminated by '\n';

系统报错:1265 Data truncated for column 's_month' at row 1

此时查询表 发现 第一行 第一个数据 被截断为 “20150”

若建表时 修改 为 varchar(7),则系统不报错,但使用 group by 语句时,汇总包含2个 201507

求各位大神带上路,帮解决这个问题

6 个解决方案

#1


varchar(6)可以存六个字符,可以检查是否有空格没有发现,至于汇总重复的,应该是数据传输或者sql 语句出了问题

#2



有具体的数据不,估计是数据有格式不规范的,你看看是第几行报的错误,打开数据文件,看看是否有问题

#3


引用 1 楼 wangjian0228 的回复:
varchar(6)可以存六个字符,可以检查是否有空格没有发现,至于汇总重复的,应该是数据传输或者sql 语句出了问题


201507,821530159490030,昆明市,4,201507,258,37034.00,270.33,270.33,233.12,2.66,37.21,0.00,0.00,36763.67

空格已经替换了,201507应该就是六个字符,就是csv文件第一条记录会被截断成20150,其他都正常

#4


引用 2 楼 yupeigu 的回复:
有具体的数据不,估计是数据有格式不规范的,你看看是第几行报的错误,打开数据文件,看看是否有问题


201507,821530159490030,昆明市,4,201507,258,37034.00,270.33,270.33,233.12,2.66,37.21,0.00,0.00,36763.67
以下几行都类似

空格已经替换了,201507应该就是六个字符,就是csv文件第一条记录会被截断成20150,其他都正常

#5


另外想了个笨办法,把第三个字段(文字)放到第一个,就不会出现这个问题,尴尬

#6


检查你的文本文件的字符集,估计是UTF格式的。另存为 ASCII格式。

#1


varchar(6)可以存六个字符,可以检查是否有空格没有发现,至于汇总重复的,应该是数据传输或者sql 语句出了问题

#2



有具体的数据不,估计是数据有格式不规范的,你看看是第几行报的错误,打开数据文件,看看是否有问题

#3


引用 1 楼 wangjian0228 的回复:
varchar(6)可以存六个字符,可以检查是否有空格没有发现,至于汇总重复的,应该是数据传输或者sql 语句出了问题


201507,821530159490030,昆明市,4,201507,258,37034.00,270.33,270.33,233.12,2.66,37.21,0.00,0.00,36763.67

空格已经替换了,201507应该就是六个字符,就是csv文件第一条记录会被截断成20150,其他都正常

#4


引用 2 楼 yupeigu 的回复:
有具体的数据不,估计是数据有格式不规范的,你看看是第几行报的错误,打开数据文件,看看是否有问题


201507,821530159490030,昆明市,4,201507,258,37034.00,270.33,270.33,233.12,2.66,37.21,0.00,0.00,36763.67
以下几行都类似

空格已经替换了,201507应该就是六个字符,就是csv文件第一条记录会被截断成20150,其他都正常

#5


另外想了个笨办法,把第三个字段(文字)放到第一个,就不会出现这个问题,尴尬

#6


检查你的文本文件的字符集,估计是UTF格式的。另存为 ASCII格式。