Notice
Recent Posts
Recent Comments
Link
투케이2K
52. (MYSQL/SQL) 함수 (FUNCTION) - 사용자 정보 포맷 수행 본문
[개발 환경 설정]
개발 툴 : Heidi
개발 언어 : Mysql
[소스 코드]
/**************************************************************/
-- [DELIMITER : 함수 앞,뒤의 위치하여 안에 있는 부분은 한번에 실행]
DELIMITER $$
/**************************************************************/
DROP FUNCTION IF EXISTS FNC_USER_INFO; -- [이미 생성된 함수가 있으면 DROP]
CREATE FUNCTION FNC_USER_INFO -- [함수 생성]
(
I_NAME VARCHAR(100), -- [인풋 : 이름]
I_AGE INTEGER -- [인풋 : 나이]
)
RETURNS VARCHAR(500) -- [리턴 : 데이터]
/**************************************************************/
/***************************************************************
[함수 설명]
[설 명] : 사용자 정보 포맷 함수
[함수 호출] :
SELECT FNC_USER_INFO('홍길동', 15) AS 함수결과;
[함수 삭제] :
DROP FUNCTION FNC_USER_INFO;
[함수 생성 목록 확인] :
SHOW FUNCTION STATUS;
***************************************************************/
/**************************************************************/
BEGIN
/**************************************************************/
-- [전역 변수 선언]
DECLARE RETURN_DATA VARCHAR(500) DEFAULT '';
DECLARE M_DEBUG VARCHAR(100) DEFAULT '';
-- [SQL 수행 EXCEPTION 처리]
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
-- [리턴 데이터 삽입]
SET RETURN_DATA = CONCAT('N : EXCEPTION : M_DEGUB : [', CAST(M_DEBUG AS CHAR), ']');
-- [함수 호출 종료]
RETURN RETURN_DATA;
END;
-- [1] : 인풋 데이터 널 체크 수행 실시
SET M_DEBUG = '1'; -- [디버깅 단계]
IF I_NAME IS NULL OR I_NAME = '' OR LENGTH(I_NAME) = 0
OR I_AGE IS NULL OR I_AGE = 0 THEN
-- [리턴 데이터 삽입]
SET RETURN_DATA = CONCAT('N : INPUT DATA IS NULL : M_DEGUB : [', CAST(M_DEBUG AS CHAR), ']');
-- [함수 종료]
RETURN RETURN_DATA;
END IF;
-- [2] : [사용자 정보 포맷 수행 실시]
SET M_DEBUG = '2'; -- [디버깅 단계]
SET RETURN_DATA = CONCAT('Y : USER : NAME : ', CAST(I_NAME AS CHAR), ' AGE : ', CAST(I_AGE AS CHAR));
-- [3] : [리턴 데이터 반환]
SET M_DEBUG = '3'; -- [디버깅 단계]
RETURN RETURN_DATA;
/**************************************************************/
END$$;
DELIMITER ;
/**************************************************************/
[결과 출력]
반응형
'MySqlDB' 카테고리의 다른 글
54. (MYSQL/SQL) CHAR_LENGTH , REPLACE 사용해 특정 문자 개수 카운트 실시 (0) | 2022.06.06 |
---|---|
53. (MYSQL/SQL) 프로시저 (PROCEDURE) - 특정 부서에 포함된 사용자 리스트 출력 - OUT 메시지 , SELECT 결과 반환 (0) | 2022.06.05 |
51. (MYSQL/SQL) 프로시저 (PROCEDURE) - 특정 부서 데이터 삽입 수행 (0) | 2022.06.04 |
50. (MYSQL/SQL) SUBSTRING_INDEX 사용해 특정 문자 값 위치 기준 자르기 수행 (0) | 2022.05.30 |
49. (MYSQL/SQL) CONCAT_WS 사용해 특정 문자 기호를 각 문자열에 결합 실시 (0) | 2022.05.30 |
Comments