👉 하나의 프로그램을 구성하는 여러 작은 단위 프로그램
- 일련의 명령문을 모아두고, 이를 외부에서 호출할 수 있게 한 구조
- 보통 프로그래밍 언어에서 function에 해당함
- PL/SQL의 대표적인 부 프로그램에는 함수(Function)과 프로시져(Procedure)가 있다.
💡 함수 생성
CREATE OR REPLACE FUNCTION 함수 이름(매개변수1, 매개변수2...) RETURN 데이터 타입; IS[AS] 변수, 상수 선언.. BEGIN 실행부 RETURN 반환값 [EXCEPTION 예외처리부] END [함수 이름];
- 함수는 기본적으로 SQL문 안에서 사용해야 한다.
- Oracle에서 기본적으로 제공해주는 함수(ex. concat)는 Built-in 함수라고 부른다.
- PL/SQL에서 함수란 사용자가 직접 정의한 함수를 말한다.
💡 함수 생성
CREATE OR REPLACE PROCEDURE 프로시저 이름 ( 매개변수명1[ IN | OUT | IN OUT ] 데이터 타입[ := 디폴트값 ], 매개변수명2[ IN | OUT | IN OUT ] 데이터 타입[ := 디폴트값 ], ...) IS[AS] 변수, 상수 등 선언 BEGIN 실행 [EXCEPTION 예외처리부] END [프로시저 이름]
❗ IN, OUT IN OUT 이란?
- 매개변수의 스코프
- IN 은 매개변수가 프로시저 내부로 전달되면 연산에만 사용되고 더이상 반환되지 않는다.
- OUT 은 프로시저 내부로 전달되지는 않지만 프로시저가 해당 변수의 참조를 통해 호출한 곳으로 값을 전달할 수 있다.
- IN OUT 은 프로시저 내부로 전달하여 연산에 사용하고 호출한 곳에서 참조를 통해 값을 전달 받을 수 있다.
💡 Procedure 실행
EXEC (혹은 EXECUTE) 프로시저명 (매개변수1 값... 매개변수2 값...)
💡 RETURN문
- RETURN문을 사용하면 프로시저의 실행을 해당 시점에서 종료시킬 수 있다.
- 조건문으로 분기시켜 로직을 수행할 때 자주 사용한다.