我的存储过程如下:CREATE PROCEDURE `sp_test`()
BEGIN create temporary table tmpRightTable (  objChk varchar(255),  ModelName varchar(50),  Operator varchar(500),  PModelName varchar(50) ); DROP TABLE IF EXISTS tmpRightTable;end; 调用:call sp_test();调用一两次没有问题,但是连续调用几次就出现Column length too big for column 'Operator' (max = 32767); use BLOB or TEXT instead的错误。

解决方案 »

  1.   

    无法模拟出你的问题。你的sp_test 中应该还有什么其它语句吧。 建议你能贴你的源代码。或者自己在本机象下面一样再测试一下。mysql> delimiter //
    mysql> CREATE PROCEDURE `sp_test`()
        -> BEGIN
        ->  create temporary table tmpRightTable
        ->  (
        ->          objChk varchar(255),
        ->          ModelName varchar(50),
        ->          Operator varchar(500),
        ->          PModelName varchar(50)
        ->  );
        ->  DROP TABLE IF EXISTS tmpRightTable;
        -> end;
        -> //
    Query OK, 0 rows affected (0.30 sec)mysql> delimiter ;
    mysql>
    mysql> call sp_test();
    Query OK, 0 rows affected (0.13 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.06 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.06 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.08 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.08 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.08 sec)mysql> call sp_test();
    Query OK, 0 rows affected (0.08 sec)mysql>