아래와 같이 트리거를 생성 하려 하는데 컴파일 하면 오류가 발생 합니다.
======== 트리거 구문 시작 ========
CREATE OR REPLACE TRIGGER ORG_MAPP_TRIGGER
AFTER
INSERT OR UPDATE ON IF_T_MAPPING
FOR EACH ROW
DECLARE
-- 변수를 선언할 때는 DECLARE문을 사용해야 한다
isr_full_nm varchar2(200);
isr_nm varchar2(200);
isr_org_cd varchar2(10);
isr_s_dt varchar2(10);
isr_e_dt varchar2(10);
isr_gubun varchar2(10);
BEGIN
FOR S1 IN
(
SELECT INSARANG_CD
FROM IF_T_MAPPING
WHERE BASE_DT = (SELECT MAX(BASE_DT) FROM IF_T_MAPPING)
MINUS
SELECT ISR_ORG_CD
FROM ORG_CODE_MAPP
)
LOOP
SELECT FULL_NM, LOW_NM, INSARANG_CD, S_DT, E_DT, USE_YN INTO isr_full_nm,isr_nm,isr_org_cd,isr_s_dt,isr_e_dt,isr_gubun FROM IF_T_MAPPING WHERE INSARANG_CD = S1.INSARANG_CD AND BASE_DT = (SELECT MAX(BASE_DT) FROM IF_T_MAPPING);
INSERT INTO ORG_CODE_MAPP(SEQ, ISR_FULL_NM, ISR_NM, ISR_ORG_CD, ISR_D_DT,ISR_E_DT, ISR_GUBUN) VALUES(TO_NUMBER(SELECT MAX(SEQ)+1 FROM ORG_CODE_MAPP),isr_full_nm,isr_nm,isr_org_cd,isr_s_dt,isr_e_dt,DECODE(isr_gubun, '0', '현존', '1', '폐지'));
END LOOP;
END;
======= 트리거 구문 종료 ========
=======에러 구문 시작 ======
ORA-24344: success with compilation error
26/121 PL/SQL: ORA-00936: missing expression
26/9 PL/SQL: SQL Statement ignored
=======에러 구문 종료 =======
어디가 잘 못된 걸까요??
감사합니다.
커서 방식으로 변경 했는데도 에러가 발생 합니다.ㅠㅠ
CREATE OR REPLACE TRIGGER ORG_MAPP_TRIGGER
AFTER
INSERT OR UPDATE ON IF_T_MAPPING
FOR EACH ROW
DECLARE
BEGIN
FOR S1 IN
(
SELECT INSARANG_CD
FROM IF_T_MAPPING
WHERE BASE_DT = (SELECT MAX(BASE_DT) FROM IF_T_MAPPING)
MINUS
SELECT ISR_ORG_CD
FROM ORG_CODE_MAPP
)
LOOP
DECLARE CURSOR SQL_CUR IS
SELECT FULL_NM, LOW_NM, INSARANG_CD, S_DT, E_DT, USE_YN
FROM IF_T_MAPPING
WHERE INSARANG_CD = S1.INSARANG_CD
AND BASE_DT = (SELECT MAX(BASE_DT) FROM IF_T_MAPPING);
BEGIN
FOR V_CUR IN SQL_CUR LOOP
INSERT INTO ORG_CODE_MAPP(SEQ, ISR_FULL_NM, ISR_NM, ISR_ORG_CD, ISR_D_DT,ISR_E_DT, ISR_GUBUN)
VALUES (TO_NUMBER(SELECT MAX(SEQ)+1 FROM ORG_CODE_MAPP),V_CUR.FULL_NM, V_CUR.LOW_NM, V_CUR.INSARANG_CD, V_CUR.S_DT, V_CUR.E_DT ,DECODE(V_CUR.USE_YN, '0', '현존', '1', '폐지'));
END LOOP;
END;
END LOOP;
END;