2014-09-02 1 views
0

커서를 선언하기 전에 sp를 호출해야합니다. sp는 테이블을 채운 다음이 테이블 행의 커서 루프를 채 웁니다. 그러나 workbench는 declare staments 전에 전화 SP 나 다른 것을 허용하지 않습니다.MySql : 스탐 코드를 선언하기 전에 저장 프로 시저를 호출하는 방법

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 문은 저장 프로 시저에서 첫 번째 있어야합니다.

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

관련 문제