오라클 function 만들기 예제
아래 두개의 테이블을 이용해 function 을 만들어 보자.
1. 사용자 테이블
SELECT
USER_ID
, USER_NAME
, AREA_CODE -- 지역코드
, DEL_FLAG
FROM USER_INFO
2. 지역정보
SELECT
AREA_CODE
, AREA_NAME
FROM AREA_INFO
-- FUNCTION 선언문
create or replace FUNCTION FN_RTN_AREA (P_USER_ID IN VARCHAR2 )
RETURN VARCHAR2
-- 변수 선언문
V_AREA_NAME VARCHAR2(10 CHAR);
V_AREA_CODE VARCHAR2(10 CHAR);
-- SELECT 된 값을 변수에 담는다.
SELECT
AREA_NAME
, AREA_CODE
INTO
V_AREA_NAME
, V_AREA_CODE
FROM USER_INFO A INNER JOIN AREA_INFO B ON A.AREA_CODE = B.AREA_CODE
WHERE 1 = 1
AND A.USER_ID = P_USER_ID
AND A.DEL_FLAG = 'N'
;
RETURN V_AREA_NAME;
EXCEPTION WHEN OTHERS THEN RETURN 'N';
END;
=================== 여기까지 했으면 지역명을 RETURN 하는 FUNCTION 이 생성된다.
여기서 IF문을 추가해 보자.
-- FUNCTION 선언문
create or replace FUNCTION FN_RTN_AREA (P_USER_ID IN VARCHAR2 )
RETURN VARCHAR2
-- 변수 선언문
V_AREA_NAME VARCHAR2(10 CHAR);
V_AREA_CODE VARCHAR2(10 CHAR);
-- SELECT 된 값을 변수에 담는다.
SELECT
AREA_NAME
, AREA_CODE
INTO
V_AREA_NAME
, V_AREA_CODE
FROM USER_INFO A INNER JOIN AREA_INFO B ON A.AREA_CODE = B.AREA_CODE
WHERE 1 = 1
AND A.USER_ID = P_USER_ID
AND A.DEL_FLAG = 'N'
;
-- IF문 추가
IF V_AREA_CODE = '0001'
THEN V_AREA_NAME = '서울'
ELSE V_AREA_NAME = '제주'
END IF
;
IF V_AREA_CODE = '0002'
THEN V_AREA_NAME = '경기'
ELSE V_AREA_NAME = '강원'
END IF
;
RETURN V_AREA_NAME;
EXCEPTION WHEN OTHERS THEN RETURN '';
END;
예를들어 설명한거라 구조가 조금 이상해도 응용해서 쓰시면 될거 같습니다.
'WORK > DB' 카테고리의 다른 글
오라클 SELECT 결과값으로 UPDATE 하기 (0) | 2018.12.05 |
---|---|
오라클 리스트 누적 합계 구하기 (0) | 2018.12.03 |
mysql 테이블 생성 및 코멘트 추가 (0) | 2018.11.26 |
MYSQL 조건문 (0) | 2018.11.23 |
오라클 MERGE 문장 (0) | 2018.10.16 |