본문 바로가기

개발/데이터베이스

[ORACLE] FUNCTION(함수) 만들기 및 사용하기

반응형

FUNCTION(함수) 만들기 및 사용하기


▶ 함수 생성 방법

CREATE OR replace FUNCTION 함수이름(파라미터) RETURN 리턴타입 IS 변수선언; BEGIN 쿼리문(값) RETURN 리턴값; END 함수이름; --결과물은 리턴값


함수 사용 방법

SELECT 함수이름(파라미터) FROM DUAL;


응용 예시

아래의 함수는 P_CODE라는 파라미터로 코드를 받아서 P_CODE와 LIST라는 테이블에 있는 CODE가 일치하는 것을 조회하여 LIST라는 테이블의 CODE에 해당하는 NAME이라는 값을 V_RETURN에 삽입하고 V_RETURN의 값을 반환해주는 함수를 생성한 것이다.

CREATE OR REPLACE FUNCTION GET_NAME ( P_CODE IN VARCHAR2 ) RETURN VARCHAR2 IS V_RETURN VARCHAR2(100); BEGIN SELECT NAME INTO V_RETURN FROM LIST WHERE CODE = P_CODE RETURN V_RETURN; END GET_NAME;


아래의 표가 LIST라는 테이블이라고 생각해보자.

NAME CODE
서울 02
경기 031


함수의 파라미터에 02라는 값을 넣으면 '서울'이라는 값을 반환한다는 의미이다.

SELECT GET_NAME(02) FROM DUAL; --결과값 : 서울


많은 자료들을 관리하다 보면 '서울'이라는 값보다 코드를 정해서 쓰는 경우가 많은데 '02'라는 코드만 보고는 이것이 어떤 것을 의미하는지 알 수가 없다.
매번 CASE WHEN과 같은 함수를 쓰는 것보다 코드를 관리하는 LIST 테이블을 만들고 위와 같은 함수를 만들어두면 유용하다.


반응형