我在 SQL-FRONT 写了个存储过程,其中用到这句
SET@sql=concat(@sql,'Where',_WhereClause);
执行时这句出错系统提示说语法错误,错误原因是concat的三个参数类型不一致
(gb2312_chinese_ci,gb2312_chinese_ci,latin)SQL-FRONT的系统登录设置的字符是gb2312,
_WhereClause定义在存储哦过程的参数中,定义方式:_WhereClause VARCHAR(2000);SET@sql='Select InfoID FROM table';问题:如何把_WhereClause的类型设置成与前面的@sql类型相同的?
SET@sql=concat(@sql,'Where',_WhereClause);
执行时这句出错系统提示说语法错误,错误原因是concat的三个参数类型不一致
(gb2312_chinese_ci,gb2312_chinese_ci,latin)SQL-FRONT的系统登录设置的字符是gb2312,
_WhereClause定义在存储哦过程的参数中,定义方式:_WhereClause VARCHAR(2000);SET@sql='Select InfoID FROM table';问题:如何把_WhereClause的类型设置成与前面的@sql类型相同的?
解决方案 »
- 用MySQL.Data.dll操作MySQL数据库时,自动添加换行符“\”的问题
- 不带年份的时间段信息(如12月15日~2月15日)怎么存储比较好?
- sql查询语句——请教各位大牛 (弄了一天了,我是无力了)
- 问一个关于mysql的问题:mysql_query 与 mysql_real_query的区别? 也就是什么时候用第一个,什么时候用第二个?
- 求教一个sql语句的问题
- 如何不让mysql每次开机时自动启动?
- 请问如何在mysql中使用load语句(我的版本是mysql-4.0.4-beta-win)以前的语句不能使用,急急
- 环境linux 8.0安装MYSQL出错,在线等,急!!!!!
- mysql jdbc 创建触发器的问题
- 装WAMP3.0.6出现的mysql错误
- 问一个关于分组排序相关的数据库查询语句
- mysql乱码
不行啊。。设置成latin1,表中的中文在存储过程执行后成了乱码。
这样不行的话,你还是改用命令行吧。
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> create function hello(s varchar(20), s2 varchar(20)) returns varchar(50)
-> return concat('hello ', s, s2);
-> //
Query OK, 0 rows affected (0.02 sec)
mysql> select hello('angelfly ', ' 中文');
-> //
+-----------------------------+
| hello('angelfly ', ' 中文') |
+-----------------------------+
| hello angelfly 中文 |
+-----------------------------+
1 row in set (0.03 sec)mysql> delimiter //
谢谢!我试试看。
MySQL 中文显示乱码
_WhereClause VARCHAR(2000);改作 _WhereClause varchar(2000) charset gb2312;就可以了。to:ACMAIN_CHM看了你的帖子,真是包容四海啊,学习了。看看我的解决方法在你给的方法中真是沧海一粟
declare _WhereClause VARCHAR(2000) charset gb2312;