안녕하세요, 초짜입니다.
질문이 델파이와는 조금 떨어진 얘기이지만, 어쨌든 도움을 받으려 이렇게 도움을 요청합니다. 사용환경은 델파이c/s, 오라클7.3입니다.
질문내용은 이렇습니다.
아래와 같은 트리거를 생성하였습니다, 물론 에러없이요.
CREATE OR REPLACE TRIGGER GTK_UP1
AFTER UPDATE of gtkbho ON T_GTKJBO
FOR EACH ROW
BEGIN
UPDATE T_SSGJBO set gtkbho = :new.gtkbho
where slmbho = :old.slmbho and sgnbho = (Select sgnbho from T_SSGJBO
where slmbho = :old.slmbho
and sgnbho = :old.ssgsgnbho);
END;
그런데 막상 T_GTKJBO의 gtkbho를 update해도 T_SSGJBO의 gtkbho는 바뀌지 않는거예요.
왜그런지 아무리 봐도 모르겠습니다.
아시는 분들의 도움을 간절히 부탁드립니다.
CREATE OR REPLACE TRIGGER T_CD_BOOK
AFTER UPDATE ON CD_BOOK
FOR EACH ROW
BEGIN
UPDATE CD_BOOK_HST SET BOOK_NAME = :NEW.BOOK_NAME
WHERE BOOK_CODE = :OLD.BOOK_CODE;
END;
근데 전혀 이상없이 값이 바꼈습니다...
지가 생각하기론...
아마 WHERE 절 이하에 걸리는 조건이 하나도 없는 것 같군요...
WHERE 절이 거짓이 되어 조건을 수행 안하는 것 같은데요...
WHERE절 이하를 다시한번 체크해보심이 좋겠네요...
> where slmbho = :old.slmbho and sgnbho = (Select sgnbho from T_SSGJBO
> where slmbho = :old.slmbho
> and sgnbho = :old.ssgsgnbho)
윗부분요...
항상 행복하세요...
halight wrote:
> 안녕하세요, 초짜입니다.
> 질문이 델파이와는 조금 떨어진 얘기이지만, 어쨌든 도움을 받으려 이렇게 도움을 요청합니다. 사용환경은 델파이c/s, 오라클7.3입니다.
> 질문내용은 이렇습니다.
> 아래와 같은 트리거를 생성하였습니다, 물론 에러없이요.
>
> CREATE OR REPLACE TRIGGER GTK_UP1
> AFTER UPDATE of gtkbho ON T_GTKJBO
> FOR EACH ROW
> BEGIN
> UPDATE T_SSGJBO set gtkbho = :new.gtkbho
> where slmbho = :old.slmbho and sgnbho = (Select sgnbho from T_SSGJBO
> where slmbho = :old.slmbho
> and sgnbho = :old.ssgsgnbho);
> END;
>
> 그런데 막상 T_GTKJBO의 gtkbho를 update해도 T_SSGJBO의 gtkbho는 바뀌지 않는거예요.
> 왜그런지 아무리 봐도 모르겠습니다.
> 아시는 분들의 도움을 간절히 부탁드립니다.