2016-07-01 6 views
1

私はmysqlにストアドプロシージャを作成しています。いくつかの変数を宣言しますが、エラーが発生します。私は問題を知らない。mysqlストアドプロシージャで変数(ローカル、ユーザ定義)を宣言する方法は?

エラーが

" '宣言' の近くに不正なsynstax" です。 MySQLのプログラム文の

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

ためはかなり具体的です。

DECLAREのステートメントが最初に必要です。

また、DECLAREステートメントの注文もあります。たとえば、任意のDECLARE ... HANDLERステートメントは変数宣言の後に来なければなりません。


それが明確ではなかった場合、それはSET次の文は無効だから... MySQLはDECLARE文のエラーが返されます。

+0

あなたの答えをありがとう!こんにちは^^ – HanTael

関連する問題