테이블 이후에 실행되는 Oracle 트리거를 만들려고하면 어떤 방식 으로든 업데이트됩니다. 나는이 모든 아침 인터넷 검색이 함께했다 봤는데 :삽입, 삭제 또는 업데이트시 Oracle 트리거
CREATE OR REPLACE TRIGGER gb_qty_change
AFTER UPDATE OR INSERT OR DELETE ON F_ITEM_STORE
FOR EACH ROW
DECLARE
v_qty V_AD_ON_HAND%rowtype;
v_isbn TD_ITEM_DESCRIPTION.TD_IDENTIFIER%type;
BEGIN
delete from gb_transaction where gb_tide = :new.ITST_ITEM_TIDE_CODE;
select TD_IDENTIFIER INTO v_isbn from TD_ITEM_DESCRIPTION where TD_TIDE = :new.ITST_ITEM_TIDE_CODE;
select * INTO v_qty from V_AD_ON_HAND where ITST_ITEM_TIDE_CODE = :new.ITST_ITEM_TIDE_CODE;
insert into gb_transaction(gb_tide, gb_isbn, gb_used_on_hand, gb_new_on_hand)
values(:new.ITST_ITEM_TIDE_CODE, v_isbn, v_qty.USED_ON_HAND, v_qty.NEW_ON_HAND);
END;
/
내가 새 테이블에 TIDE_CODE 당 하나의 레코드로 유지하기 위해 노력하고있어.
V_AD_ON_HAND는 인벤토리 수를 가져 오는보기입니다. gb_transaction이이 이벤트를 로깅하고있는 새 테이블입니다.
다른 사람 코드와 비교하면 실행해야하지만 "경고 : 트리거가 컴파일 오류로 생성되었습니다."라는 메시지가 나타납니다.
트리거 (또는 다른 PL/SQL 블록)에 컴파일 오류가 있다는 경고 메시지가 나타나면 SQL 프롬프트에서 "SHOW ERRORS"를 입력하여 컴파일 목록을 가져올 수 있습니다 오류. 그러면 특정 오류를 식별하는 데 도움이됩니다. –