1> PROCEDURE (프로시저)
- 특정 처리 실행하는 서브 프로그램 유형
- 다른 프로시저, 오라클 툴, Pro*C 등 호출하여 실행
- 컴파일 이후 오브젝트로 데이터베이스 내 저장 이후 호출되면서 실행
- 생성 : CREATE PROCEDURE
삭제 : DROP PROCEDURE
수정 : ALTER PROCEDURE
<Grammar>
CREATE [ OR REPLACE ] PROCEDURE
procedure name
IS | AS 변수 선언
BEGIN PL/SQL BLOCK;
- OR REPLACE : 같은 프로시저명이 있을 경우 기존 프로시저 삭제 후 다시 생성하여 현재 선언한 내용으로 변경
- 프로시저명은 중복되지 않게 명명한다.
- Mode
IN 모드 : 사용자로부터 값 입력 받아 프로시저로 전달
OUT 모드 : 프로시저에서 호출 환경으로 값 전달 역할
INPUT 모드 : 매개 변수는 호출 환경과 프로시저 간에 값을 주고 받는 지역변수 사용
<Example>
-- 1. 기본 프로시저 생성
CREATE OR REPLACE PROCEDURE
proc_update IS
BEGIN
UPDATE TEAM SET NAME = ‘SON’ WHERE NO = 10;
END;/
-- 프로시저 실행
EXECUTE proc_update;
-- 2. 변수 있는 프로시저 생성
CREATE OR REPLACE PROCEDURE
input_update (vmemno IN team.memno%TYPE )
IS BEGIN
UPDATE TEAM SET NAME = ‘SON’ WHERE memno = vmemno;
END;/
-- 프로시저 실행
EXECUTE input_update(10);
2> FUNCTION (함수)
- 정해진 작업을 수행한 후 결과를 리턴 (프로시저와 비슷하지만 프로시저는 결과값을 반환 안할수도 있다.)
- 생성 : CREATE FUNCTION
삭제 : DROP FUNCTION
수정 : ALTER FUNCTION
<Grammar>
CREATE [ OR REPLACE ] FUNCTION
function name 변수 선언
RETURN datatype
IS | AS
PL/SQL BLOCK;
RETURN datatype 부분과 같이 프로시저와 다르게 데이터 형 값을 리턴합니다. (반드시 포함)
실제 리턴되는 데이터 타입과 여기서 선언한 데이터 타입이 동일
- 함수 사용 : Select 절, Where & Having 조건절, Insert 문, Update문, Connect by, Strat with, Order by, Group by 절
<Example>
-- 함수 생성
CREATE OR REPLACE FUNCTION
test_function(Ateam_no mem.team_no%TYPE)
Return number
IS max_num team.num%type;
BEGIN
SELECT max(num) INTO max_num
FROM team
WHERE team_no = Ateam_no;
RETRUN max_num;
END;/
3> PACKAGE (패키지)
- 특정처리를 위한 PL/SQL 블록들이 논리적으로 하나의 그룹을 이루는 형태
- 프로시저, 함수 등을 묶어서 그룹으로 사용하는 개념
- 패키지 구조 : 선언부 + 몸체부
a. 패키지 선언부 : 프로시저나 함수, 변수 정의 선언
CREATE [OR REPLACE] PACKAGE package name
IS | AS 변수, 커서, 예외 등 선언 (PUBLIC)
서브 프로그램 선언
END package name;
b. 패키지 몸체부 : 선언된 함수나 프로시저 등 실제 구현
CREATE [OR REPLACE] PACKAGE BODY package name
IS | AS
변수, 커서, 예외 등 선언 (PUBLIC)
서브 프로그램 선언
END package name;
오라클 PL/SQL 기본 개념 정리는 아래 내용 참고하시기 바랍니다!!
[참고 글]
[IT/Data] - [PL/SQL 개념] 오라클 프로시저 PL/SQL 기본 정리
[IT/Data] - [PL/SQL개념] PL/SQL cursor 커서, Oracle Exception 예외처리
[IT/Data] - [PL/SQL개념] 오라클 프로시저 개념 정리 – (2) PL/SQL 변수, 제어문
'IT ▶ > Database' 카테고리의 다른 글
[PL/SQL 기초] PL/SQL 이란? - 변수, 상수, %TYPE, 커서 (0) | 2020.02.19 |
---|---|
[SQL PL] PL/SQL 변수제어, 흐름제어 (IF, LOOP, REPEAT) (0) | 2020.02.08 |
[PL/SQL 개념] PL/SQL cursor 커서, Oracle Exception 예외처리 (0) | 2020.01.11 |
[PL/SQL개념] 오라클 프로시저 개념 정리 – (2) PL/SQL 변수, 제어문 (0) | 2020.01.11 |
[PL/SQL 개념] 오라클 프로시저 PL/SQL 기본 정리 (0) | 2019.12.21 |