반응형
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 테이블을 만들고 위와 같은 함수를 만들어두면 유용하다.
반응형
'개발 > 데이터베이스' 카테고리의 다른 글
[ORACLE] 계층 쿼리 (START WITH CONNECT BY) (0) | 2021.10.18 |
---|---|
[ORACLE] MERGE (0) | 2021.10.17 |
[ORACLE] INSERT, DELETE, UPDATE (0) | 2021.10.15 |
[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER (0) | 2021.10.14 |
[ORACLE] EXTRACTVALUE 함수, EXTRACT 함수 (1) | 2021.10.13 |