함수 Function
- 프로시저의 각 프로세스를 수행하기 위해 필요한 기능
- 일반적인 프로그래밍 언어에서 사용되는 함수와 같이 복잡한 프로그래밍 지원
함수 문법
CREATE OR REPLACE FUNCTION 함수명
(
매개변수명 데이터 타입,
매개변수명 데이터 타입, ..
)
RETURN 데이터 타입
IS | AS
변수 및 상수 선언
BEGIN
실행 문장
RETURN 반환값
EXCEPTION 문장
END;
프로시저와 함수 차이
프로시저 | 함수 |
특정 작업 수행 | 특정 계산 수행 |
리턴값이 없을수도 있음 | 리턴값이 반드시 존재 |
리턴값 여러개 가능 | 리턴값 1개 |
서버(DB)에서 기술 | 클라이언트에서 기술 |
수식내에서 사용 불가 | 수식 내에서 사용 가능 |
단독으로 문장 구성 가능 | 단독으로 문장 구성 불가 |
예시
to_yyyyddmm 함수 date타입을 to_char로 변환시키기
CREATE OR REAPLCE FUNCTION to_yyyymmdd(date Date)
RETURN VARCHAR2
IS
char_date VARCHAR2(20);
BEGIN
char_date := TO_CHAR(date,'YYYYMMDD');
RETURN char_date;
END;
함수 실행
#단독으로 사용하지 못하기 때문에 질의를 통해 사용
SELECT to_yyyymmdd(sysdate) FROM DUAL;
get_age 함수
CREATE OR REPLACE FUNCTION get_age(date Date)
RETURN NUMBER
IS
age NUMBER;
BEGIN
age := TRUNC(MONTHS_BETWEEN(TRUNC(SYSDATE), to_yyyymmdd(date)) / 12);
RETURN age;
END;
#함수실행
SELECT get_age('20100420') FROM DUAL;
'Oracle DB' 카테고리의 다른 글
인덱스 Index (0) | 2023.08.19 |
---|---|
함수 Function (2) (0) | 2023.08.15 |
커서 ( Cursor) (0) | 2023.08.15 |
프로시저 Procedure 정의 및 변수종류 (2) (0) | 2023.08.14 |
프로시저 Procedure 정의 및 변수종류 (1) (0) | 2023.08.12 |