当mysql中的变量中的过程名称时,调用存储过程

时间:2016-06-05 11:39:05

标签: mysql stored-procedures prepared-statement

我有mysql存储过程,我想在一个变量中调用那个和过程名,我使用预处理语句,但它给了我一个错误,

我不是mysql的专家。

这是准备好的陈述

   > PREPARE stmt1 FROM 'CALL ? (?,?,?)'; 
     SET @q = 'sys_search'; 
     SET @a ='All_Employees';
     SET @b = 1; 
     SET @c = 1; 
     EXECUTE stmt1 USING @q,@a,@b,@c;

任何人都可以给我解决方案吗?

2 个答案:

答案 0 :(得分:1)

@Rahul,@ Tim Biegeleisen感谢您的回复。 我用这些陈述来完成工作。

SET @q = 'sys_search';
SET @q2 = CONCAT('CALL ',@q,'(?,?,?)');
PREPARE stmt1 FROM @q2;
SET @a = 'All_Employees';
SET @b = 1;
SET @c = 1;
EXECUTE stmt1 USING @a, @b,@c; 

答案 1 :(得分:0)

我认为您不能使用动态查询执行存储过程。而是使用程序中涉及的SELECT创建动态查询并执行该操作。