我在存储过程中使用了以下代码:
insert
像这样,我会在行中获得语法错误" SELECT计算表到v_calctable FROM wac.degrees其中tablename = concat(" cdb _" + arg_tablename);"
如果我把它放在"声明光标"没有语法错误,但我需要在de Cursor select语句中使用结果。
我该如何做到这一点?
感谢。
答案 0 :(得分:1)
CREATE DEFINER=`root`@`localhost` PROCEDURE `my_procedure`()
BEGIN
DECLARE done INT DEFAULT FALSE;
declare v_degree int(11);
declare v_start_age smallint(6);
declare v_end_age smallint(6);
declare v_gender varchar(20);
declare v_calctable varchar(200);
SELECT calculationtable into v_calctable FROM wac.degrees where tablename = concat("cdb_" + arg_tablename);
begin -- write here begin keyword
declare cur CURSOR for select degree, start_age, end_age, belt, gender from v_calctable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
end; -- end here inner block
END
当您使用另一个开始和结束关键字的内部块时 那么它没有任何合成错误。 但这个程序给你正确的结果我不清楚