如何在mysql存储过程中声明变量(本地,用户定义)?

时间:2016-07-01 00:35:28

标签: mysql stored-procedures mariadb

我正在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

1 个答案:

答案 0 :(得分:1)

带有MySQL程序的语句的顺序非常具体。

DECLARE语句必须先出现。

还有DECLARE语句的订单。例如,任何DECLARE ... HANDLER语句必须在变量声明之后。

如果不清楚...... MySQL正在为DECLARE语句返回错误,因为它在SET语句后无效。