mysql 存儲(chǔ)過(guò)程字符集
數(shù)據(jù)庫(kù)默認(rèn)字符集如下:
1: mysql> use ivm;2: Database changed3: mysql> show variables %char%';4: +--------------------------+---------------------------------------------------------+
5: | Variable_name | Value |6: +--------------------------+---------------------------------------------------------+
7: | character_set_client | latin1 |8: | character_set_connection | latin1 |9: | character_set_database | gbk |10: | character_set_filesystem | binary |11: | character_set_results | latin1 |12: | character_set_server | latin1 |13: | character_set_system | utf8 |14: | character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |15: +--------------------------+---------------------------------------------------------+
16: 8 rows in set (0.00 sec)17:18: mysql>
在 ivm數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過(guò)程及調(diào)用結(jié)果如下:
1: delimiter ;;2: DROP PROCEDURE IF EXISTS r_test;3: CREATE PROCEDURE r_test(IN inStr VARCHAR(255) )4: BEGIN5: SELECT CHARSET(inStr);6: END;;7: delimiter ;8:9: #下面的語(yǔ)句都執(zhí)行失敗,錯(cuò)誤信息為:Data too long for inStr' at row 110: call r_test('中國(guó)');
11: call r_test(_gbk'中國(guó)');
12: SET @china = _gbk'中國(guó)';13: CALL r_test(@china);14: #執(zhí)行成功 返回值是:latin115: call r_test('china');
16:17:18: # 創(chuàng)建存儲(chǔ)過(guò)程中設(shè)置了 參數(shù)的字符集19: delimiter ;;20: DROP PROCEDURE IF EXISTS r_test2;21: CREATE PROCEDURE r_test2(IN inStr VARCHAR(255) character set gbk)22: BEGIN23: SELECT CHARSET(inStr);24: END;;25: delimiter ;26:27: #執(zhí)行成功 返回值是:gbk28: call r_test2('中國(guó)');
29: #執(zhí)行成功 即使執(zhí)行前設(shè)置了字符集是utf8返回值仍然是:gbk30: call r_test2(_utf8'中國(guó)');
31: #執(zhí)行成功 返回值是:gbk32: call r_test2('china');
結(jié)論:創(chuàng)建存儲(chǔ)過(guò)程時(shí)如果沒(méi)有指定存儲(chǔ)過(guò)程的參數(shù)的字符集,mysql總是認(rèn)為當(dāng)前的參數(shù)使用的是系統(tǒng)的字符集(windows 下 my.ini中的 default-character-set指定)。
否則,mysql總是認(rèn)為存儲(chǔ)過(guò)程的參數(shù)使用的就是定義時(shí)指定的字符集。
需要注意的是:上面的規(guī)則和當(dāng)前的連接字符集沒(méi)有任何的關(guān)系(使用mysql_options(m_pMySql, MYSQL_SET_CHARSET_NAME, "utf8")也不會(huì)改變)
posted on 2013-03-22 18:00 zaccheo 閱讀(1574) 評(píng)論(0) 編輯 收藏 引用 所屬分類: mysql