문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| oracle:trigger [2018/02/22 01:32] – taekgu | oracle:trigger [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ===== Trigger ===== | ===== Trigger ===== | ||
| + | ==== Trigger 확인 ==== | ||
| + | <code sql> | ||
| + | --2 All Disabled Triggers: | ||
| + | select * | ||
| + | from dba_triggers | ||
| + | where status!=' | ||
| + | </ | ||
| ==== Compund Trigger ==== | ==== Compund Trigger ==== | ||
| <code sql> | <code sql> | ||
| 줄 10: | 줄 17: | ||
| TYPE TYPE_SALED_TAB IS TABLE OF SALED%ROWTYPE; | TYPE TYPE_SALED_TAB IS TABLE OF SALED%ROWTYPE; | ||
| G_SALED_TAB TYPE_SALED_TAB := TYPE_SALED_TAB(); | 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 STATEMENT IS | ||
| BEGIN | BEGIN | ||
| 줄 24: | 줄 34: | ||
| BEGIN | BEGIN | ||
| if INSERTING or UPDATING or DELETING then | if INSERTING or UPDATING or DELETING then | ||
| + | G_SALED_TAB.EXTEND; | ||
| NULL; | NULL; | ||
| end if; | end if; | ||
| + | | ||
| + | ctr := ctr + 1; | ||
| + | dbms_output.put_line(' | ||
| + | coll_bookings_hist(ctr).booking_id := : | ||
| + | coll_bookings_hist(ctr).mod_dt := sysdate; | ||
| + | coll_bookings_hist(ctr).mod_user := user; | ||
| + | coll_bookings_hist(ctr).old_booking_dt := : | ||
| + | coll_bookings_hist(ctr).new_booking_dt := : | ||
| + | | ||
| NULL; -- Do something here. | NULL; -- Do something here. | ||
| END AFTER EACH ROW; | END AFTER EACH ROW; | ||
| 줄 31: | 줄 51: | ||
| AFTER STATEMENT IS | AFTER STATEMENT IS | ||
| BEGIN | 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. | NULL; -- Do something here. | ||
| END AFTER STATEMENT; | END AFTER STATEMENT; | ||