Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在存储过程中使用游标循环行_Mysql_Sql_Loops_Stored Procedures_Cursor - Fatal编程技术网

Mysql 在存储过程中使用游标循环行

Mysql 在存储过程中使用游标循环行,mysql,sql,loops,stored-procedures,cursor,Mysql,Sql,Loops,Stored Procedures,Cursor,场景:我有一个存储过程,它基于两个输入从表中获取数据:一个日期和一个作为列名的字符串。第一个过程是从另一个过程调用的,该过程使用游标循环表的行,并将每一行传递给要检查的第一个过程列名的字符串。第二个过程是直接调用的过程,我的输入是日期 问题:当我单独调用它时,我的第一个过程运行良好。我的第二个过程是抛出一些我不知道如何修复的语法错误 Obs:我已经检查了关于这个话题的其他一些答案 如和。实际上,我的第二个过程现在是我在SE上找到的查询的修改版本 问题:目前,代码在我的@colval声明的第5行抛

场景:我有一个存储过程,它基于两个输入从表中获取数据:一个日期和一个作为列名的字符串。第一个过程是从另一个过程调用的,该过程使用游标循环表的行,并将每一行传递给要检查的第一个过程列名的字符串。第二个过程是直接调用的过程,我的输入是日期

问题:当我单独调用它时,我的第一个过程运行良好。我的第二个过程是抛出一些我不知道如何修复的语法错误

Obs:我已经检查了关于这个话题的其他一些答案 如和。实际上,我的第二个过程现在是我在SE上找到的查询的修改版本

问题:目前,代码在我的@colval声明的第5行抛出了一个错误

代码:


问题:关于如何解决这个问题有什么想法吗?

您的过程中有几个问题。首先,如本节所述:

仅允许在BEGIN中声明。。。结束复合语句,并且必须在其开始处,在任何其他语句之前

所以你需要移动你的手臂

set @dateval = `wanted_date`;
在所有声明之后,包括游标和continue处理程序

其次,您的colval声明不正确,字符串不是有效的数据类型,应替换为文本:


所有declare语句必须在任何代码之前,例如set@dateval=wanted_date`@尼克,光标呢?事实上,我只是把这些陈述搬来搬去了。相同错误。从:声明仅允许在开始。。。结束复合语句,并且必须在其开始处,在任何其他语句之前。@Nick我刚刚在声明所有语句之后将集合更改为。还是有同样的错误哦是的应该是文本而不是字符串
set @dateval = `wanted_date`;
declare colval text default null;