본문 바로가기
Oracle DB

함수 Function (1)

by jisung-kim 2023. 8. 15.

 

함수 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