提问者:小点点

在此位置无效,需要标识符。发生错误


DELIMITER //
CREATE PROCEDURE PROCEDURE_NM    ( IN   PARAM_A          VARCHAR(16)       
                                 , IN   PARAM_B          VARCHAR(16) ) 

BEGIN
    DECLARE SRCH_CNTE VARCHAR(500) DEFAULT IN PARAM_A + PARAM_B;
    DECLARE SQL_NM    VARCHAR(500) DEFAULT 'PROCEDURE_NM';
    DECLARE ERROR_YN  VARCHAR(1)   DEFAULT 'N';
    DECLARE ERROR_MSG VARCHAR(500) DEFAULT NULL;
    BEGIN
        CALL PROC_LOG(SRCH_CNTE, SQL_NM, ERROR_YN, ERROR_MSG);
    END;
    
    BEGIN
        --SOMETHING
    END;
    
    BEGIN
        DECLARE EXIT HANDLER FOR SQLEXCEPTION
            BEGIN
                GET DIAGNOSTICS CONDITION 1
                    ERROR_MSG = MESSAGE_TEXT;
                    ERROR_YN  = 'Y';  
                    CALL PROC_LOG(SRCH_CNTE, SQL_NM, ERROR_YN, ERROR_MSG);
            END;
    END;
END//

DELIMITER ;

“error_yn”在此位置无效,需要标识符。
出现语法错误。

我已经完成了变量声明,我不认为有什么遗漏。我该修什么?


共1个答案

匿名用户

BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
        BEGIN
            GET DIAGNOSTICS CONDITION 1 someVarient=RETURNED_SQLSTATE
              , ERROR_MSG = MESSAGE_TEXT;
                
                CALL PROC_LOG(SRCH_CNTE, SQL_NM, 'Y', ERROR_MSG);
        END;
END;

它在更改为上面的代码后被成功提交。

相关问题