2016-07-01 4 views
1

Ich erstelle gespeicherte Prozedur in mysql. Ich deklariere einige Variablen, aber Fehler auftreten. Ich kenne kein Problem.Wie deklariert man Variablen (lokal, benutzerdefiniert) in mysql stored-procedure?

Fehler ist

"Falsche synstax in der Nähe von 'Declare'".

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

Verschieben 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;' nach den 'DECLARE's. –

+0

Vielen Dank für die Antwort! ^^ Guten Tag! – HanTael

Antwort

1

Die um von Anweisungen mit einem MySQL-Programm ist ziemlich spezifisch.

Die DECLARE Anweisungen müssen zuerst kommen.

Und es gibt eine Bestellung für die DECLARE Aussagen auch. Zum Beispiel müssen alle DECLARE ... HANDLER Anweisungen nach Variablendeklarationen kommen.


Wenn es nicht klar war, ... MySQL einen Fehler für die DECLARE Anweisung zurückkehrt, weil es nach einer SET Aussage nicht gültig ist.

+0

Vielen Dank für Ihre Antwort !! Guten Tag ^^ – HanTael