2016-07-01 76 views
1

我在mysql中創建存儲過程。我聲明瞭一些變量,但發生錯誤。我不知道問題。如何在mysql存儲過程中聲明變量(本地,用戶定義)?

錯誤是

「接近 '聲明' 不正確synstax」。

CREATE PROCEDURE SP_APPDOCLISTSIGNBOXREAD_GET(
P_SESSIONID   VARCHAR(256), 
P_EMPID    VARCHAR(20), 
P_FORMSEQ   VARCHAR(5) 
) 
BEGIN 
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 

    DECLARE V_DRAFTDEPT VARCHAR(20); -- ***This line is error.*** 
    DECLARE V_ADMINCOUNT INT; 

    SET @V_STRSQL = '';   -- Dynamic query variable 
    SET @V_STRWHERE = '';  -- Dynamic query variable 
    SET @V_STRPARAM = '';  -- Dynamic query variable 

    SET V_DRAFTDEPT = ''; 
    SET V_ADMINCOUNT = 0; 

    SELECT DEPTCODE INTO V_DRAFTDEPT 
     FROM TBEMPLOYEE 
    WHERE EMPID = P_EMPID; 
END 
+0

在'DECLARE'之後移動'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;'。 –

+0

謝謝你的回答!! ^^美好的一天! – HanTael

回答

1

與MySQL程序語句的順序非常具體。

DECLARE聲明必須排在第一位。

還有一個DECLARE報表的訂單。例如,任何DECLARE ... HANDLER語句必須在變量聲明之後出現。


如果還不清楚... MySQL是爲DECLARE語句,因爲它下面的一個SET語句的無效返回一個錯誤。

+0

謝謝你的回答!美好的一天^^ – HanTael

相關問題