해당 함수는 공통 코드를 가져오기 편하게 사용하기 위해 작성한 간단한 ORACLE 함수 형식이다.
타입이나 지역이름들과 같이 따로 테이블을 만들기 애매한 항목에 대해서 모아서 볼 수 있는 COM_CODE라는
공통 테이블을 만들었으나 해당 이름을 가져올 때마다 COM_CODE에 JOIN하는 등 과도한 JOIN조건이 붙었던 단점이 존재하였다.
이러한 부분을 보고 선생님이 함수로 사용하시는 것을 고려해 보라하여 바로 찾아 해당 이름을 가져오는 것을 함수화를 시켰다
아래가 바로 타입이나 지역번호를 넣어 이름을 반환하는 함수 형식이다
create or replace FUNCTION FN_GET_COM_NM(
p_com_no IN VARCHAR2
) RETURN VARCHAR2 IS
v_com_nm COM_CODE.COM_NM%TYPE;
BEGIN
-- COM_NO와 일치하는 COM_NM을 조회
SELECT COM_NM
INTO v_com_nm
FROM COM_CODE
WHERE COM_NO = p_com_no;
-- 결과 반환
RETURN v_com_nm;
EXCEPTION
-- 일치하는 값이 없을 경우 NULL 반환
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
FN_GET_COM_NM(공통코드번호)
SELECT FN_GET_COM_NM(RGN_NO) AS RGN_NM
FROM BZENT
함수를 쓰는 법을 제대로 깨닫지 못했는데 이번에 왜 함수를 쓰는지에 대해서 알 것 같다.
다음에도 이러한 형식이 있을 때 무조건 join을 쓰는 것이 아닌 함수화를 시키는 방안을 물색해보고자 한다.
'Project' 카테고리의 다른 글
ERP 프로젝트 - FullCalendar (1) | 2024.10.11 |
---|---|
ERP 프로젝트 - 최저가 표 (0) | 2024.10.11 |
ERP 프로젝트 - 크롤링/정렬 (0) | 2024.10.11 |
[Project] 학사관리 프로젝트 (0) | 2024.07.08 |
[Project] db를 활용해 콘솔 통해 구현하는 도서관 시스템 (0) | 2024.04.20 |