2015년 4월 15일 수요일

Oracle Trigger Sample (+raise_application_error)

CREATE OR REPLACE TR_TRIGGERNAME

BEFORE  -- 주로 사용
UPDATE OR DELETE OR INSERT ON TABLENAME
FOR EACH ROW

DECLARE
       ERR_MSG VARCHAR2(100);   -- 변수 선언
BEGIN
   
    IF UPDATEING THEN
        -- UPDATE 일어날시 작업
        -- OLD.COLUMN, NEW.COLUMN 을 사용하여 업데이트 조건 처리...
        ERR_MSG := 'ERROR MESSAGE ... !!! ';
        RAISE_APPLICATION_ERROR(-20001,ERR_MSG);
    END IF  

    IF DELETEING THEN
         -- DELETE 일어날시 작업
         -- NEW 는 없으므로 , OLD.COLUMN  을 사용하여 삭제 데이터 조건 처리
        ERR_MSG := '2 . ERROR MESSAGE ... !!! ';
        RAISE_APPLICATION_ERROR(-20002,ERR_MSG);        
    END IF

    IF INSERTING THEN
        --  INSERT 일어날시 작업
        -- NEW.COLUMN 을 사용해서 입력되기 전에 데이터 체크
        ERR_MSG := '3. ERROR MESSAGE ... !!! ';
        RAISE_APPLICATION_ERROR(-20003,ERR_MSG);
    END IF

END;
/

댓글 없음:

댓글 쓰기