调用本机函数'concat'时参数不正确

时间:2014-05-20 08:15:10

标签: mysql sql

我正在尝试创建存储过程如下

CREATE PROCEDURE `Test1` (IN projName VARCHAR(200), IN tablName VARCHAR(200))
  BEGIN

  set @cmd = concat('Create table', tablName ' as ( select name from   samprojects.projects  where type=',projName')');

  PREPARE stmt FROM @cmd;
  EXECUTE stmt;

  END

低于错误

ERROR 1583:调用本机函数时参数不正确' concat'

知道如何解决这个问题。

我正在使用MYSQL工作台来运行sql查询

MYSQL工作台生成的SQL脚本如下

 USE `samprojects`;
 DROP procedure IF EXISTS `Test1`;

 DELIMITER $$
 USE `samprojects`$$
 CREATE PROCEDURE `Test1` (IN projName VARCHAR(200), IN tablName VARCHAR(200))
  BEGIN

  set @cmd = concat('Create table', tablName, ' as ( select name from   samprojects.projects  where type=',projName')');

  PREPARE stmt FROM @cmd;
  EXECUTE stmt;

  END$$

 DELIMITER ;

1 个答案:

答案 0 :(得分:10)

tablName之后您缺少逗号:

 set @cmd = concat('Create table', tablName, ' as ( select name from   samprojects.projects  where type=''',projName, ''')');