2015-03-31 119 views
0

我已经创建了一个应用程序。用于前端和后端的Visual Studio 2010是MySQL 5.3版本。在这个应用程序中,我在MySQL中使用存储过程。我用英文插入数据并且工作正常。但我插入的Unicode日期(如马拉或印地文)用相同的存储过程,则产生一个错误:列“\ xE0 \ XA4 \ X90 \ xE0 \ XA4 ...”:如何在MySQL存储过程中插入Unicode数据

不正确的字符串值'p_hindicontent'在第1行

请帮帮我。

预先感谢您

+1

那么,你需要***风采***什么!向我们展示存储过程以及调用它的代码。我们无法阅读您的屏幕 - 也没有您的想法 - 您必须在此处向我们展示...... – 2015-03-31 09:55:31

+1

该字符串是否以“[ऐ]开头(http://www.fileformat.info/info/unicode/ char/0910/index.htm)“字符?如果是这样,你发送给MySQL的字符串用UTF-8编码 - 但MySQL认为它们是用其他字符集编码的;您必须正确设置[数据库连接的字符集](https://dev.mysql.com/doc/en/charset-connection.html)。我们需要了解你如何连接到MySQL以进一步提供建议。 – eggyal 2015-03-31 10:08:29

回答

2

,你必须这样写存储过程:

DROP PROCEDURE IF EXISTS `cn_marathidata`. 
`SPemp` 
$$ 
CREATE DEFINER = `root`@ 
`localhost` 
PROCEDURE `SPemp` (in P_name text charset utf8, in P_address text charset utf8) 
BEGIN 
INSERT INTO Employee 
    (
    name, 
    address 

) 
VALUES 
    (
    P_name, 
    P_address 
); 
END $$ 

DELIMITER; 

希望这个技巧可以帮助你

+0

是的,这就对了!由于https://bugs.mysql.com/bug.php?id=13909错误,有必要为参数,结果以及局部变量显式指定字符集。 – 2015-04-30 06:28:32

相关问题