개발/대덕인재개발원

대덕241002- DB:사용자 정의 함수,트리거

월은 2024. 10. 2. 17:46

<DB> 

스택:Last In First Out

큐(Queue):First In First Out

 

사용자 정의 함수 

User Defined Function(Function)
 - 특징은 procedure와 동일
 - 반환값이 존재
 
(사용형식)
CREATE [OR REPLACE] FUNCTION 함수명[(
  변수명 [IN | OUT | INOUT] 타입명[,]
                :
  변수명 [IN | OUT | INOUT] 타입명)]
  RETURN 타입명  
IS | AS
  선언영역;
BEGIN;
   실행영역 (RETURN값);
END;
 - 'RETURN 타입명' : 반환할 데이터 타입(크기 기술하지 않음)
 - 실행영역에 반드시 하나 이상의 'RETURN값' 명령이 존재해야 
 - OUT 매개변수는 실제적으로 사용 안함

 

트리거 

트리거(TRIGGER)
 - 오라클에서의 트리거는 어떤 이벤트가 발생하면 자동적으로 특정 테이블이 변경되면
   이를 이벤트로 다른 테이블이 자동으로(연쇄적으로) 변경되도록 하기 위해서 사용되는 특수 프로시저
 - 문장단위 트리거, 행단위 트리거 --행의 갯수만큼 나와야 한다면(여러개 나와야 한다면) 행단위 트리거
 (사용형식)
  CREATE [OR REPLACE] TRIGGER 트리거명
   (timing)BEFORE|AFTER  (event)INSERT|UPDATE|DELETE ON 테이블명 
   [FOR EACH ROW]--행단위, 만약 이게 생략되면 문장단위 
   [WHEN 조건]--FOR EACH ROW와 세트, 행단위의 좀 더 디테일한 조건이 필요한 경우 기입
  [DECLARE
    선언영역]
   BEGIN
    트리거 본문;
   END; 
   
   1. 문장단위 트리거
   - 결과 행의 수와 관계없이 오직 1번만 실행되는 트리거
   - FOR EACH ROW가 생략되면 문장단위 트리거가 됨