개발노트

[Oracle] Function 본문

Programming/Database

[Oracle] Function

dev? 2025. 4. 29. 13:51
반응형
  • Oracle Database 안에 만드는 **함수(Function)**입니다.
  • 입력값을 받아서 계산하거나 결과를 리턴하는 프로시저블한 객체입니다.
  • SQL문 안에서도 사용할 수 있고, 다른 프로시저나 트리거에서도 호출할 수 있습니다.

 

1. 기본 구조

CREATE OR REPLACE FUNCTION 함수명 (파라미터명 데이터타입, ...)
RETURN 반환타입
IS
  -- 변수 선언부
BEGIN
  -- 실행 로직
  RETURN 반환값;
END;

 

2. 예제

1) 간단한 숫자 제곱 함수

CREATE OR REPLACE FUNCTION get_square (p_num IN NUMBER)
RETURN NUMBER
IS
BEGIN
  RETURN p_num * p_num;
END;

사용법:

SELECT get_square(4) FROM dual; 
-- 결과: 16

 

3. 주요 특징

항목  설명
CREATE OR REPLACE 이미 있으면 덮어쓰고, 없으면 새로 만듦
IN / OUT 기본은 IN (입력값만), 일반 함수는 리턴용이라 보통 IN만 씀
RETURN 반드시 반환값이 있어야 함
IS 선언부 시작
BEGIN ... END 실행부
dual 결과를 바로 조회할 때 사용하는 가상 테이블

 

4. 함수 삭제

DROP FUNCTION 함수명;

 

5. 주의사항

 

  • 함수는 반드시 RETURN 문이 있어야 함.
  • SQL 안에서 쓸 때SELECT 함수명() 형태로 사용.
  • DML(INSERT, UPDATE, DELETE) 안에서는 제한이 있음 (부작용 없는 함수만 권장).

 

 

반응형