본문 바로가기
  • Adillete
【♣부트 캠프♣】/▷WIL

[WIL/TIL29일차]프로시저

by 아딜렛 2024. 6. 27.

프로시저 AFTER/ BEFORE?

 

▼추가 자료

https://www.ibm.com/docs/ko/db2/11.1?topic=dt-specifying-when-trigger-fires-before-after-instead-clauses

 

트리거 실행 시점 지정(BEFORE, AFTER 및 INSTEAD OF절)

트리거 활성화 시간은 트리거 이벤트와 관련하여 트리거가 활성화되어야 하는 시점을 지정합니다. 이 타스크에 대한 정보BEFORE, AFTER 또는 INSTEAD OF와 같은 세 가지 활성화 시간을 지정할 수 있습

www.ibm.com

▣TRIGGER의 활성화 시간으로 구분한다.

→ BEFORE/AFTER/INSTEAD OF
▣ FOR EACH STATEMENT 트리거 수준이 있을수 있다.
▣ BEFORE TRIGGER의 용도
--> 입력데이터의 유효성확인/ 새로 삽입된 행에대한 값을 자동으로 생성
/상호 참조를 위해 다른 테이블에서 읽어오기
▣  BEFORE 트리거의 제한 다음 SQL문을 포함할 수 없음
UPDATE
DELETE
INSERT
MERGE

그래서 따로 지정해줬구나... 

 

 


이번주 충격1

DECLARE-- 틀
TYPE FIRSTTYPE IS RECORD
(A 사원.사원명%TYPE,B 사원.직급%TYPE,C 사원.급여%TYPE);--A 사원.사원명 띄어쓰기안하면 문법오류난다.
CUS FIRSTTYPE;
BEGIN
SELECT 사원명, 직급, 급여 INTO CUS FROM 사원 WHERE 사원번호=2001;--사원명, 직급, 급여을 CUS 에 담았다.
DBMS_OUTPUT.PUT_LINE('사원명  직급  급여' );--프린트할때 이걸로 프린트한다.
(중략)
END;
/ --슬래쉬로 PL/SQL을 종료한다.
FOR K IN(SELECT 사원명,직급 FROM 사원) LOOP
	I := I+1;
	SANAME_COL(I) := K.사원명;
	JIK_COL(I) := K.직급;
END LOOP;

FOR J IN 1..I LOOP-- FOR문루프
		DBMS_OUTPUT.PUT_LINE(중략));
END LOOP;
END;
/