2014-09-02 33 views
0

我需要在声明游标之前调用sp。 sp填充表格,然后在这些表格行中放置光标循环。但工作台在declare之前不允许调用sp或其他任何东西。MySql:如何在声明staolean之前调用存储过程

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?

回答

0

DECLARE语句必须在存储过程中首先使用。 (1)在调用usp_tesst之前调用usp_createtemppackages 2)将usp_createtemppackages功能集成到usp_tesst中3)删除游标并以某种其他方式迭代表(这可能会导致性能增加,因为游标有点慢)。

0

你可以完成你需要的东西如下:

... 
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.... 

call usp_createtemppackages; 
... 

SQL Fiddle demo