민서네집

CODE NAME 을 반환하는 MySQL Function 본문

Database/MySQL

CODE NAME 을 반환하는 MySQL Function

브라이언7 2013. 6. 7. 10:39
-- CODE_NAME 을 반환하는 fn_code_name Function

DROP FUNCTION IF EXISTS fn_code_name;

DELIMITER $$
CREATE FUNCTION fn_code_name(groupCode TEXT, commCode TEXT)
	RETURNS TEXT READS SQL DATA
BEGIN
	DECLARE codeName TEXT;

	SET codeName = (SELECT CODE_NAME
				 	  FROM T_COMMCODE_DETAIL
					 WHERE GROUP_CODE = groupCode AND COMM_CODE = commCode AND USE_YN = 'Y');

	RETURN codeName;
END $$
DELIMITER ;


MySQL Function 만들때 주의할 점


END 다음에 반드시 세미콜론(;)이 없어야 한다. => 에러가 안 날 때도 있는데, 에러가 날 때도 있다.


그리고 마지막 DELIMITER 다음에 반드시 공백이 하나 있고, 세미콜론(;) 이 있어야 한다. 공백이 없으면 에러 난다. 


그리고 파라미터나 FUNCTION 내부에서 선언하는 변수의 이름이 컬럼 이름과 같으면 실행할 때 이유를 알 수 없는 오동작을 한다.


[참고] http://stackoverflow.com/questions/1267172/mysql-delimiter-error


Comments