繁体   English   中英

游标无法通过mysql存储过程中的prepare语句执行?

[英]Cursor can't execute through a prepare statement in mysql stored procedure?

我的代码是:

CREATE DEFINER=`root`@`windows7test-pc` PROCEDURE `new_procedure`()
BEGIN
declare str varchar(4000);
set str='declare cur cursor for select *from student';
set @st=str;
prepare stmt from @st;
execute stmt;
DEALLOCATE PREPARE stmt;
open cur;//error 1324:undefined cursor...... why?
END

为什么在这里没有声明cursur?请通知我我的问题

摘抄:

...游标不能用于使用PREPARE和EXECUTE准备和执行的动态语句。 在创建游标时会检查游标的语句,因此该语句不能是动态的。

参考: http : //dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html

请注意,文档包括“ Prepared Statements中允许的SQL语法”部分,并且“ DECLARE ”和“ CURSOR ”都没有出现在允许的语法列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM