【发布时间】:2018-03-13 12:18:41
【问题描述】:
我正在尝试在另一个存储过程中调用一个存储过程。
我在主过程调用子过程的语句中遇到语法错误。
这是我的查询
DROP PROCEDURE GetAllProducts;
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
DECLARE finished INT DEFAULT 0;
DECLARE myName varchar(60);
DEClARE myCursor CURSOR FOR
SELECT Name FROM Test;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished =1 ;
OPEN myCursor;
get_email: LOOP
FETCH myCursor INTO myName;
IF finished = 1 THEN
LEAVE get_email;
END IF;
-- Line which shows a syntax error
EXEC UpdateProdcut myName;
END LOOP get_email;
CLOSE myCursor;
DEALLOCATE myCursor;
END //
DELIMITER ;
这是错误信息
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax
to use near 'UpdateProdcut myName OUTPUT;
mysql版本是5.5.54
对此有什么想法吗?
谢谢。
【问题讨论】:
-
谢谢。我改变了它的调用,现在它正在工作。顺便说一句,我认为它使用 EXECUTE 来调用它
-
SQLSERVER exec 存储过程mysql execute 用于执行准备好的语句(即动态sql)dev.mysql.com/doc/refman/5.7/en/execute.html
-
再次感谢您为我指明了正确的方向
标签: mysql stored-procedures syntax-error