내용으로 건너뛰기
GaramX
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
home
»
oracle
»
trigger
추적:
oracle:trigger
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
===== Trigger ===== ==== Trigger 확인 ==== <code sql> --2 All Disabled Triggers: select * from dba_triggers where status!='ENABLED'; </code> ==== Compund Trigger ==== <code sql> CREATE OR REPLACE TRIGGER 트리거이름 FOR 트리거링 이벤트 ON 테이블명 COMPOUND TRIGGER -- 전역 변수 선언 g_global_variable VARCHAR2(10); TYPE TYPE_SALED_TAB IS TABLE OF SALED%ROWTYPE; G_SALED_TAB TYPE_SALED_TAB := TYPE_SALED_TAB(); type ty_bookings_hist is table of bookings_hist%rowtype index by pls_integer; coll_bookings_hist ty_bookings_hist; ctr pls_integer := 0; BEFORE STATEMENT IS --명령문 레벨 트리거 BEFORE BEGIN NULL; -- Do something here. END BEFORE STATEMENT; BEFORE EACH ROW IS --행레벨 트리거 BEFORE BEGIN NULL; -- Do something here. END BEFORE EACH ROW; AFTER EACH ROW IS --행레벨 트리거 AFTER BEGIN if INSERTING or UPDATING or DELETING then G_SALED_TAB.EXTEND; NULL; end if; ctr := ctr + 1; dbms_output.put_line('In after each row. booking_id='||:new.booking_id); coll_bookings_hist(ctr).booking_id := :new.booking_id; coll_bookings_hist(ctr).mod_dt := sysdate; coll_bookings_hist(ctr).mod_user := user; coll_bookings_hist(ctr).old_booking_dt := :old.booking_dt; coll_bookings_hist(ctr).new_booking_dt := :new.booking_dt; NULL; -- Do something here. END AFTER EACH ROW; AFTER STATEMENT IS --명령문 레벨 트리거 AFTER BEGIN IF G_SALED_TAB.COUNT() > 0 THEN FOR i IN G_SALED_TAB.first .. G_SALED_TAB.last LOOP END LOOP; END IF; forall counter in 1..coll_bookings_hist.count() insert into bookings_hist values coll_bookings_hist(counter); NULL; -- Do something here. END AFTER STATEMENT; END <trigger-name>; </code>
oracle/trigger.txt
· 마지막으로 수정됨: 2025/04/15 10:05 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
맨 위로