서브 프로그램
여러번 사용할 목적으로 이름을 저장해 오라클에 저장해두는 PL/SQL프로그램
한 번 사용할 목적이면 익명블록(anonymous block)이 낫다.
프로시저
특정 처리 작업을 수행하기 위한 서브프로그램으로 SQL문에서는 사용 불가능
CREATE OR REPLACE PROCEDURE 프로시저명[(파라미터 타입)]
IS|AS
-- 로컬변수 선언부
BEGIN
-- 실행부
EXCEPTION
-- 예외 처리부
END [프로시저명]
--프로시저 실행(SQL문에서 불가능)
EXEC/EXECUTE 프로시저명[(매개변수..)];
함수
특정 연산을 거친 결과 값을 반환하는 프로그램으로 SQL문에서 사용가 능
CREATE [OR REPLACE] FUNCTION 함수명 [(파라미터 타입, ...)]
RETURN 반환값타입
IS|AS
-- 로컬변수 선언부
BEGIN
-- 실행부
RETURN 리턴할 변수
EXCEPTION
예외 처리부
END [함수명];
--함수 실행(SQL문에서도 가능)
SELECT 함수명(매개변수..) FROM DUAL; /*함수 실행*/
트리거
특정 이벤트가 발생할 때, 자동으로 연달아 수행할 기능을 구현하는데에 사용
CREATE OR REPLACE TRIGGER 트리거명
BEFORE|AFTER
INSERT|UPDATE|DELETE ON 테이블명
FOR EACH ROW WHEN 조건식
DECLARE
--선언부
BEGIN
--실행부
EXCEPTION
--예외처리부
END [트리거명];
패키지
저장 서브 프로그램을 그룹화 하는데에 사용
CREATE [OR REPLACE] PACKAGE 패키지명
IS|AS
--선언부
BEGIN
--다양한 서브프로그램 선언
[서브프로그램종류 서브프로그램명(파라미터)]
END [패키지명];
CREATE OR REPLACE PACKAGE BODY 패키지명
IS|AS
--패키지에 명세한 서브프로그램 정의
--패키지 실행
패키지명.격체명;
'Programming > SQL' 카테고리의 다른 글
[SQL] SQLdeveloper에서 엑셀 데이터 임포트하는 법 (0) | 2022.06.14 |
---|---|
[SQL] 'ORA-01950: 테이블스페이스 'UERS'에 대한 권한이 없습니다.' 에러 해결 방법 (0) | 2022.06.14 |
[ORACLE] 커서(Cursor)에 대한 설명 (0) | 2022.03.06 |
[ORACLE] PL/SQL의 조건문과 반복 제어문 (IF, CASE, LOOP) (0) | 2022.03.02 |
SQL문 기본 문법 (작성中) (0) | 2021.12.17 |