행위

오라클 트리거

DB CAFE

thumb_up 추천메뉴 바로가기


1 트리거 생성[편집]

create_trigger.gif

CREATE OR REPLACE TRIGGER TR_AGA02_TEST
  BEFORE INSERT OR UPDATE OR DELETE ON TB_TRG_TEST
  FOR EACH ROW
DECLARE
BEGIN
  IF (:NEW.SLIP_DT >= '20191201' OR :OLD.SLIP_DT >= '20191201') THEN  
      RAISE_APPLICATION_ERROR('-20001', '트리거검사오류: SLIP_DT 일자가 20191201보다 같거나 큰 값은 입력할 수 없습니다.');
  END IF;
END;

2 트리거 삭제[편집]

DROP TRIGGER TR_AGA02_TEST;

3 트리거 활성화[편집]

ALTER TRIGGER reorder ENABLE;

4 테이블에 걸린 트리거 전체 활성화[편집]

ALTER TABLE inventory
    ENABLE ALL TRIGGERS;

5 트리거 비활성화[편집]

ALTER TRIGGER reorder DISABLE;

6 테이블에 걸린 트리거 전체 비활성화[편집]

ALTER TABLE inventory
     DISABLE ALL TRIGGERS;
SELECT DISTINCT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME|| ' DISABLE ALL TRIGGERS;' DIS_TRIGGER
 FROM DBA_TRIGGERS
 WHERE OWNER IN (
 'TB_EMP'
,'TB_DEPT')
 ;

7 유저 트리거 전체 비활성화 프로시져[편집]

  • 트리거를 실행할 유저로 로그인 할것
BEGIN
FOR i IN (SELECT trigger_name
FROM user_triggers) LOOP

EXECUTE IMMEDIATE 'ALTER TRIGGER ' || i.trigger_name || ' DISABLE';
END LOOP;
END;