안녕하세요..
아래의 구문에서, AFTER가 잘못 쓰였네요...
이미 trigger의 event를 for each row라고 하셨고,
조건으로 when에 not exists를 주셨으므로, after는 빼셔야 하구요,
위의 referencing에서도 OLD를 주시면 안됩니다. (왜냐하면 insertㄴ ㄴ 새로운 data가 들어가는 것이므로, old는 없지요...)
그러니까, 아래와 같이 하시면 될것 같네요..
CREATE TRIGGER TR_AGA01_INS_ACO23
INSERT ON TB_AGA01
REFERENCING NEW AS POST
FOR EACH ROW WHEN ( NOT Exists( SELECT 'X' FROM TB_ACO23 WHERE SLIP_NO = POST.SLIP_NO
AND EMP_NO = POST.EMP_NO ))
( EXECUTE PROCEDURE PR_AGA01_INS_ACO23 ( POST.SLIP_NO
, POST.SLIP_DT
, POST.PROC_EMP_NO
, POST.INS_ID
, POST.INS_DT ) ) ;
그럼, 도움이 되셨길...
-- defndeb 님이 쓰신 글:
>> CREATE TRIGGER TR_AGA01_INS_ACO23
>> INSERT ON TB_AGA01
>> REFERENCING OLD AS PRE NEW AS POST
>> FOR EACH ROW WHEN ( NOT Exists( SELECT 'X' FROM TB_ACO23 WHERE SLIP_NO = POST.SLIP_NO
>> AND EMP_NO = POST.EMP_NO ))
>> AFTER ( EXECUTE PROCEDURE PR_AGA01_INS_ACO23 ( POST.SLIP_NO
>> , POST.SLIP_DT
>> , POST.PROC_EMP_NO
>> , POST.INS_ID
>> , POST.INS_DT ) ) ;
>>
>> 위의 프로그램을 Compile을 하면...
>>
>> SQL Error (-201) : A syntax error has ocurred. 라고 나옵니다.
>>
>>
>> 무엇이 문제인지.. 알려 주시면 더욱 감사하겠습니다.
|