确定错误原因
修改函数的字符集
CREATE FUNCTION function_name(param1 INT, param2 VARCHAR(50))
RETURNS VARCHAR(100) CHARACTER SET utf8
BEGIN
...
END;
查看MySQL服务器的全局字符集
可以通过执行以下SQL语句来查看MySQL服务器的全局字符集:
SHOW VARIABLES LIKE 'character_set_server';
如果该值与函数创建语句中指定的字符集不一致,就需要修改MySQL服务器的全局字符集.可以通过修改my.cnf(或my.ini)文件来更改该值,例如:
[mysqld]
character_set_server=utf8
修改完毕后,需要重启MySQL服务器才能使更改生效.
示例说明
CREATE FUNCTION to_upper_case(str VARCHAR(100))
RETURNS VARCHAR(100) CHARACTER SET utf8
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE res VARCHAR(100) CHARACTER SET utf8 DEFAULT '';
WHILE i <= LENGTH(str) DO
IF SUBSTRING(str, i, 1) BETWEEN 'a' AND 'z' THEN
SET res = CONCAT(res, CHAR(ASCII(SUBSTRING(str, i, 1)) - 32));
ELSE
SET res = CONCAT(res, SUBSTRING(str, i, 1));
END IF;
SET i = i ◆ 1;
END WHILE;
RETURN res;
END;
可以通过以下SQL语句来查看MySQL服务器的全局字符集:
SHOW VARIABLES LIKE 'character_set_server';
执行结果类似于:
◆----------------------◆--------◆
| Variable_name | Value |
◆----------------------◆--------◆
| character_set_server | latin1 |
◆----------------------◆--------◆
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!