数据就是这4条记录了,全贴出来了: 目录:D:\my_program\C++\MySQL_C\abc.txt, 文本文件的内容如下: 1;0x06 2;0x5c 3;0x22 4;0x31是不是我的MYSQL与您的不一样呢? mysql> select version(); +---------------------+ | version() | +---------------------+ | 5.0.87-community-nt | +---------------------+ 1 row in set (0.02 sec) 我的是有报错的: load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt' into table source_db_new FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ( Frame_number, SCCP_TYPE );报错如下: ERROR 1265 (01000): Data truncated for column 'SCCP_TYPE' at row 1
5.0.87-community-nt 这个版本没测试过 现在使用的版本大多是5.5或者5.6
还人帮测试一下上述代码吗? mysql 5.5 或5.6 就没有报错吗? 或者有用MYSQL 5.0 的朋友也帮测一下,是否也是报错? 真的这个load data infile 与MYSQL的版本有关吗? 我正在试图安装5.6 ,但好象一直装不上。这个要先装微软的FRAME WORK 4.0 , 5.0不需要装这个库。我个人觉得5.0 更方便一些,真心不想换成5.6啊。
如果您能成功执行我发的SQL语句,能给发一个成功的LOG吗? load data 是否与MYSQL的环境变量设置相关呢?这个load data infile 是一个很常用的工具,各种版本的MYSQL 中load data 工具应当变化不大吧? 我担心是环境变量的设置问题,或是MYSQL的配置参数那里设置不同,造成我的主机上运行load data infile 失败。这个真的与MYSQL 大版本相关吗???? 谁正在用MYSQL 5.0 ,能否帮我测试一下我说的SQL语句?
这个问题有人问过了 ( Frame_number, SCCP_TYPE ); 和 FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' 不能共用 要么你修改文本格式 sed -ri 's/;/\t/g' abc.txt 要么你两个只能用一个
TO chengchow2001.可以共用吧?我以前经常这么用的。源文件中的列数可以与表中的字段数不一一对应的。我可以将数据导入到指定的列字段上! 这个结论是没有问题的。我测试过的,而且之前也么这用过的。所以你说的这个原因不能解决我说的问题。最简单的方法是你可以试一下.会不会报错。
这么写同样出现报错,一样:load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt' into table source_db_new FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n'ERROR 1265 (01000): Data truncated for column 'SCCP_TYPE' at row 1
我刚装了一个MYSQL 5.6 试了一下,也不行!!!同样的报错。 load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt' into table source_db_new FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ( Frame_number, SCCP_TYPE ); Error Code: 1265. Data truncated for column 'SCCP_TYPE' at row 1 0.000 secTO benluobobo 用户,你说能成功执行,这是真的吗? 你看到了请回复一下。多谢!
我的问题解决了,自己终于想明白了: load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt' into table source_db_new FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ( Frame_number, @SCCP_TYPE ) set SCCP_TYPE=conv(mid(@SCCP_TYPE,3,2),16,10);OK PASS !!!! LOAD DATA 确实识别它为字符串“0x06”,而不是16进制数。所以要将字符串转换为10进制数。在此与大家分享!!!
目录:D:\my_program\C++\MySQL_C\abc.txt, 文本文件的内容如下:
1;0x06
2;0x5c
3;0x22
4;0x31是不是我的MYSQL与您的不一样呢?
mysql> select version();
+---------------------+
| version() |
+---------------------+
| 5.0.87-community-nt |
+---------------------+
1 row in set (0.02 sec)
我的是有报错的:
load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt'
into table source_db_new
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'
(
Frame_number,
SCCP_TYPE
);报错如下:
ERROR 1265 (01000): Data truncated for column 'SCCP_TYPE' at row 1
或者有用MYSQL 5.0 的朋友也帮测一下,是否也是报错?
真的这个load data infile 与MYSQL的版本有关吗? 我正在试图安装5.6 ,但好象一直装不上。这个要先装微软的FRAME WORK 4.0 , 5.0不需要装这个库。我个人觉得5.0 更方便一些,真心不想换成5.6啊。
(
Frame_number,
SCCP_TYPE
);
和
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'
不能共用
要么你修改文本格式
sed -ri 's/;/\t/g' abc.txt
要么你两个只能用一个
into table source_db_new
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'ERROR 1265 (01000): Data truncated for column 'SCCP_TYPE' at row 1
load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt'
into table source_db_new
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'
(
Frame_number,
SCCP_TYPE
);
Error Code: 1265. Data truncated for column 'SCCP_TYPE' at row 1 0.000 secTO benluobobo 用户,你说能成功执行,这是真的吗? 你看到了请回复一下。多谢!
load data infile 'D:\\my_program\\C++\\MySQL_C\\abc.txt'
into table source_db_new
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'
(
Frame_number,
@SCCP_TYPE
)
set
SCCP_TYPE=conv(mid(@SCCP_TYPE,3,2),16,10);OK PASS !!!!
LOAD DATA 确实识别它为字符串“0x06”,而不是16进制数。所以要将字符串转换为10进制数。在此与大家分享!!!