动态传递过程名称

时间:2017-08-25 19:44:43

标签: mysql stored-procedures

是否可以在另一个过程中动态传递过程的名称?

程序名称存储在表格中,并根据标准名称不同。

如果有可能,我将如何做到这一点?

到目前为止,我有这样的事情:

SET $proc = CONCAT('CALL ',$queryString);

PREPARE stmt FROM CONCAT('CALL ', $queryString);

EXECUTE stmt;

1 个答案:

答案 0 :(得分:0)

非常接近,只需使用正确的预处理语句语法:

create procedure sp_exec_proc( 
in_proc char(64)
)
begin

set @proc = concat('CALL ',in_proc);
prepare stmt from @proc;
execute stmt;

end

然后,您可以传递过程名称和可选参数

call sp_exec_proc('sp_my_proc("ABC")')