Задавайте вопросы, мы ответим
Вы не зашли.
Коллеги,
че-то я не понимаю. По-моему, баг:
mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW CREATE FUNCTION testcharset\G
*************************** 1. row ***************************
Function: testcharset
sql_mode:
Create Function: CREATE DEFINER=`username`@`hostname` FUNCTION `testcharset`() RETURNS varchar(255)
BEGIN
DECLARE c VARCHAR(255) CHARSET utf8;
SET c = 'ФЫВАЭЖ';
RETURN c;
END
1 row in set (0.00 sec)
mysql> SELECT testcharset();
+---------------+
| testcharset() |
+---------------+
| ?????? |
+---------------+
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'testcharset()' at row 1 |
+---------+------+----------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT VERSION();
+------------+
| VERSION() |
+------------+
| 5.0.22-log |
+------------+
1 row in set (0.00 sec)
Неактивен
Похоже бага в SHOW CREATE FUNCTION. У меня определенная функция выдает данные в правильной кодировке, но вот SHOW CREATE FUNCTION не работает.
mysql> select version(); +------------+ | version() | +------------+ | 5.0.22-log | +------------+ 1 row in set (0.00 sec) mysql> set names koi8r; Query OK, 0 rows affected (0.00 sec) mysql> use test mysql> CREATE FUNCTION `testcharset`() RETURNS varchar(255) CHARSET utf8 BEGIN DECLARE c VARCHAR(255) CHARSET utf8; SET c = 'ФЫВАЭЖ'; RETURN c; END// Query OK, 0 rows affected (0.00 sec) mysql> select testcharset()// +---------------+ | testcharset() | +---------------+ | ФЫВАЭЖ | +---------------+ 1 row in set (0.00 sec) mysql> show create function testcharset\G *************************** 1. row *************************** Function: testcharset sql_mode: Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `testcharset`() RETURNS varchar(255) BEGIN DECLARE c VARCHAR(255) CHARSET utf8; SET c = '??????'; RETURN c; END 1 row in set (0.00 sec)
Неактивен
Разместил немного измененный репорт:
http://bugs.mysql.com/bug.php?id=35588&thanks=4
Неактивен
Уже ответили с дополнительным вопросом
Неактивен