DROP PROCEDURE IF EXISTS `TEST_STORED_PROCEDURE`;
DELIMITER //
-- 일반적으로 세미콜론(;)이 구문의 종료문자
-- DELIMITER 명령어로 구분문자(//)로 변경하고
-- END;
-- //
-- DELIMITER; 종료선언
-- DELIMITER 명령어로 구분 문자(//)를 변경하고 나서 세미콜론을 넣어도 해당 명령어가 끊기지 않고 계속 이어집니다.
CREATE PROCEDURE `TEST_STORED_PROCEDURE`
(
INOUT i_test_id VARCHAR(20), /* test ID */
OUT o_result_cd VARCHAR(2), /* 응답코드 */
OUT o_result_msg VARCHAR(100) /* 응답메시지 */
)
BEGIN
/******************************************************************************
NAME: TEST_STORED_PROCEDURE
PURPOSE: 테스트 프로시저
******************************************************************************/
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN
SET o_result_cd = '01';
SET o_result_msg = '조회 요청 중 오류가 발생하였습니다.';
END;
DECLARE EXIT HANDLER FOR NOT FOUND BEGIN
SET o_result_cd = '02';
SET o_result_msg = '요청한 id가 유효하지 않습니다.';
END;
SELECT TEST_NAME
INTO o_name
FROM TEST_TABLE
WHERE TEST_ID = i_test_id;
SET o_result_cd = '00';
SET o_result_msg = '정상처리되었습니다.';
END;
//
DELIMITER;
SQL 실행 테스트
------------------------------------------
SET @id= ' TEST';
CALL TEST_STORED_PROCEDURE(
@id
, @cd
, @message
)
SELECT@id, @cd, @message;
----------------------------------------