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”在此位置无效,需要标识符。
出现语法错误。
我已经完成了变量声明,我不认为有什么遗漏。我该修什么?
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;
它在更改为上面的代码后被成功提交。