各位老师,您好:问题是这样的
表 t_user 存放以下内容
c_code -字段011111 -数据以下为过程CREATE PROCEDURE tett (out number1 VARCHAR(200))
BEGIN
DECLARE number2 VARCHAR(200) DEFAULT (select max(c_code) from t_user);set number1=number2;end;然后调用
call tett(@sd)
select @sd个人感觉调出来的应该是 011111 
但是出来的确实 
@sd
(BLOB)百度 也出不来 相关问题,在这求教

解决方案 »

  1.   

    select max(c_code) from t_user
    这个结果是多少
      

  2.   

    问题找到了类型换成 int 就可以了但是问什么不可以用VARCHAR(200)如果存入的是 中文 或字母 改如何处理呢?
      

  3.   

    你在MYSQL命令行下运行,看看结果是什么
      

  4.   

     (select max(c_code) from t_user) 返回是什么?  varchar(200) 应该可以啊。
      

  5.   

    测试如下
    mysql> delimiter //
    mysql> CREATE PROCEDURE tett (out number1 VARCHAR(200))
        -> BEGIN
        ->  DECLARE number2 VARCHAR(200) DEFAULT (select 1);
        ->  set number1=number2;
        -> end//
    Query OK, 0 rows affected (0.11 sec)mysql> delimiter ;
    mysql> call tett(@sd);
    Query OK, 0 rows affected (0.00 sec)mysql> select @sd;
    +------+
    | @sd  |
    +------+
    | 1    |
    +------+
    1 row in set (0.00 sec)mysql>
      

  6.   

    我使用 navicat 运行的
    真的不可以。
      

  7.   

    按= #6楼  的方案,贴出你的检查结果。
    你是如何确定VARCHAR不行的?
      

  8.   

    mysql> call tett2(@sa);
    Query OK, 0 rows affectedmysql> select @sa;
    +------+
    | @sa  |
    +------+
    | 1    |
    +------+
    1 row in set (0.00 sec)
    命令行 可以 ~navicat 不可以 ~~悲催~这个如何是好。。mysql>