MySql:如何在声明语句之前调用存储过程

MySql:如何在声明语句之前调用存储过程,mysql,sql,stored-procedures,mysql-workbench,Mysql,Sql,Stored Procedures,Mysql Workbench,我需要在声明游标之前调用sp。sp先填充一个表,然后在此表中填充光标循环行。但workbench不允许在声明语句之前调用sp或任何其他内容 create definer=`root`@`%` procedure `usp_tesst`() begin declare ordid int; declare packid int; declare cstmid int; declare deltimespanid int; declare dstrcid int; declare pcstatus

我需要在声明游标之前调用sp。sp先填充一个表,然后在此表中填充光标循环行。但workbench不允许在声明语句之前调用sp或任何其他内容

create definer=`root`@`%` procedure `usp_tesst`()
begin
declare ordid int;
declare packid int;
declare cstmid int;
declare deltimespanid int;
declare dstrcid int;
declare pcstatus tinyint(1);
declare deliverytime datetime;

declare maxdate datetime;
declare temppackcount int default(0);

    call usp_createtemppackages;

-- it says there is a syntax error in here

    declare crs cursor for 
                select  * from temppackages....

我该如何称呼此sp

存储过程中必须首先使用DECLARE语句


考虑-1)在调用usp_tesst之前调用usp_createtemppackages 2)将usp_createtemppackages功能集成到usp_tesst中3)移除游标并以其他方式迭代表(由于游标有点慢,这也可能会提高性能)。

您可以按如下方式完成所需:

。。。
声明maxdate-datetime;
声明temppackcount int默认值(0);
/*调用usp_createtemppackages*/
--它说这里有一个语法错误
为声明crs游标
从temppackages中选择*。。。。
调用usp_createtemppackages;
...

我知道这很旧,但我也有同样的问题。似乎我们不能在宣布之前。我们怎么做?