티베로 트리거 질문드립니다 0 4 669

by 돼지뚱뙝이 [Tibero] [2022.03.10 16:01:53]


트리거를 작성하려고합니다.

조건문에 

FOR EACH ROW
WHEN ( (SELECT F_GET_CENTER_CLASS_YN(NEW.LEC_CD) FROM DUAL) = 'Y' ) 
DECLARE        

형식으로 평션을 이용하여 지금 입력되는 자료가 Y일 경우에만 인서트 되도록 하려고합니다.

지금 형태그대로 트리거입력하여 컴플릿트하면 에러가납니다

에러가 Subqueries cannot be used in this clause. 라고납니다.

트리거 조건문에 지금처럼 select 를 이용하면 안될까요?

알려주세요. ㅠㅠ 구글링해도 when 문에 select 이용한건 찾기가 어렵내요 ㅠㅠ

by 마농 [2022.03.10 16:34:26]

Select 를 빼세요. ->
- 변경전 : WHEN ( (SELECT F_GET_CENTER_CLASS_YN(NEW.LEC_CD) FROM DUAL) = 'Y' )
- 변경후 : WHEN ( F_GET_CENTER_CLASS_YN(NEW.LEC_CD) = 'Y' )


by 돼지뚱뙝이 [2022.03.10 16:42:45]

빼고 했는대 이번엔 다른 에러가 납니다  ㅠㅠ

UDF cannot be used in this clause.


by 마농 [2022.03.10 16:59:11]

사용자 함수 사용이 안된다는 메시지네요.
WHEN 절이 아닌 BEGIN 안에서 IF 문으로 처리하세요.


by 돼지뚱뙝이 [2022.03.10 17:36:26]

답변감사합니다, IF문에 써도 되는거였군요 ㅠㅠ 한참찾았는대 정말감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입