mysql存储过程碰到中文乱码问题
mysql> call gen_cus;
ERROR 1366 (HY000): Incorrect string value: '\xD7\xE3\xC9\xD0\xC5\xAE...' for co
lumn 'l_shop_nick' at row 1
原因是因为命令行的客户端编码默认是latin1
mysql的版本是5.5
使用 service.msc 找到mysql的服务 C:\ProgramData\MySQL\MySQL Server 5.5\my.ini
修改这个文件
[client]
no-beep
default-character-set=utf8
[mysql]
default-character-set=utf8
client 增加编码配置就行了
然后将存储过程重新删除
drop procedure gen_cus;
DELIMITER //
CREATE PROCEDURE gen_cus()
BEGIN
DECLARE l_uid varchar(32);
DECLARE l_total int unsigned default 0;
DECLARE l_shop_nick VARCHAR(32) ;
set l_shop_nick='测试店铺';
set l_uid = replace(uuid(),'-','');
while l_total<=10 do
set l_uid = replace(uuid(),'-','');
select l_total;
set l_total = l_total +1;
insert into custom_info(cus_uid,shop_nick,nick,name,com_uid,sid,create_time) values(l_uid,l_shop_nick,concat('shop',l_uid),concat('name',l_uid),'783E0081AA473A5B8143F1676833E84B','783E0081AA473A5B8143F1676833E84B',now());
end while;
END;
//
DELIMITER ;
后来还是有乱码.
然后在DbVisualizer 中查看存储过程发现 是乱码.
然后在DvVisual中修改成正确的中文后 才ok.
诶.....
说明
相关资料:http://www.cnblogs.com/ndxsdhy/archive/2011/11/19/2255111.html
mysql存储过程相关知识:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html