Study📚/Oracle

Oracle - 프로시저(Procedure), 함수(Function)

woo!na 2023. 11. 19. 18:20

- 프로시저란?

PL/SQL에서 가장 대표적인 구조인 스토어드 프로시저는 개발자가 자주 작성해야 하는 업무의 흐름을 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때 마다 호출하여 실행할 수 있도록 처리해주는 구문이다.

FUNCTION 과 비교했을 때 RETURN 반환자료형 부분이 존재하지 않으며, 『RETURN』문 자체도 존재하지 않고, 프로시저 실행 시 넘겨주게 되는 매개변수의 종류는 IN(입력), OUT(출력), INOUT(입출력) 으로 구분된다.

 

▶ 형식 및 구조

CREATE [OR REPLACE] PROCEDURE 프로시저명
[(매개변수 IN 데이터타입
, 매개변수 OUT 데이터타입
, 매개변수 INOUT 데이터타입
)]
IS
    [-- 주요 변수 선언]
BEGIN
    -- 실행 구문;
    ...
    [EXCEPTION
        -- 예외 처리 구문;]
END;

-- 실행(호출)
EXE[CUTE] 프로시저명[(인수1, 인수2, ...)];

 

- 함수란?

함수란 하나 이상의 PL/SQL 문으로 구성된 서브루틴으로 코드를 다시 사용할 수 있도록 캡슐화 하는데 사용된다. 오라클에도 사용자 정의 함수를 만들 수 있고 이 사용자 정의 함수는 시스템 함수처럼 쿼리에서 호출하거나 저장 프로시저처럼 EXECUTE 문을 통해 실행할 수 있다.

사용자 정의 함수는 IN 파라미터(입력 매개변수)만 사용할 수 있으며 ★반드시 반환될 값의 데이터타입을 RETURN 문에 선언해야★ 하고, FUNCTION 은 반드시 단일 값만 반환한다.

 

▶ 형식 및 구조

CREATE [OR REPLACE] FUNCTION 함수명
[(매개변수명1 자료형
, 매개변수명2 자료형
)]
★RETURN 데이터타입★
IS
    -- 주요 변수 선언
BEGIN
    -- 실행문;
    ...
    ★RETURN (값);★
    
    [EXCEPTION]
        -- 예외 처리 구문;
END;