하나의 SQL 파일로 작성된 원래 트리거 :
CREATE OR REPLACE TRIGGER "LOCATION_TRIGGER"
BEFORE INSERT ON BBT_LOCATIONS
FOR EACH ROW
BEGIN
IF :new.LOCATIONID < 1000
THEN :new.LOCATIONID := :new.LOCATIONID;
ELSE
:new.LOCATIONID := LOCATIONID_SEQ.NEXTVAL;
END IF;
END LOCATION_TRIGGER;
---------------------------------------
CREATE OR REPLACE TRIGGER "ROUTESTOP_TRIGGER"
BEFORE INSERT ON BBT_ROUTESTOP
FOR EACH ROW
DECLARE
matches varchar2(4);
BEGIN
SELECT COUNT(*) INTO matches FROM BBT_LOCATIONS WHERE LOCATIONID = :new.STOP_REFERENCE;
IF (match <> 1)
THEN
SELECT LOCATIONID into :new.STOP_REFERENCE
FROM BBT_LOCATIONS
WHERE NAME = :new.NAME;
END IF;
END ROUTESTOP_TRIGGER;
이것이 실행되면 두 트리거의 모든 코드는 LOCATION_TRIGGER로 이동하고 ROUTESTOP_TRIGGER로 이동하는 모든 코드는
create or replace
처음 쓰기 트리거. 내 구문이 틀린 것 같지만 볼 수 없습니다. 미리 감사드립니다.
각 트리거 후 새 줄에 슬래시를 추가하여 버퍼에서 명령을 실행할 수 있습니다.
CREATE OR REPLACE TRIGGER "LOCATION_TRIGGER"
.......
END LOCATION_TRIGGER;
/
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다