트리거 변수 관련 질문입니다. 0 1 1,113

by 강영수 [2008.12.24 16:55:12]


안녕하세요

트리거 때문에 이렇게 질문을 올리게 되었습니다..

 

CREATE OR REPLACE TRIGGER GETP.EDI_CERTIF_MAIN_INS
AFTER INSERT ON GETP.EDI_CERTIF_MAIN FOR EACH ROW

---------------------------------------------------------------------------------------------------
-- Trigger Name        : EDI_CERTIF_MAIN_INS
-- Description        : 전자문서 수신 시 해당 테이블에 COMPANY_ID 컬럼을 채워줌.
-- Table            : EDI_CERTIF_MAIN
-- Event            : INSERT
---------------------------------------------------------------------------------------------------
DECLARE
    V_COMPANY_ID    VARCHAR2(20);

BEGIN

    IF (:OLD.DOCUMENT_IO_TYPE = 'I') THEN
   
    BEGIN
       
        SELECT COMPANY.COMPANY_ID
          INTO V_COMPANY_ID
          FROM COMMON_COMPANY COMPANY, COMPANY_PARTNER PARTY
         WHERE PARTY.COMPANY_ID = COMPANY.COMPANY_ID
           AND COMPANY.EDI_CLASS_ID2 = :NEW.DOCUMENT_RECIPIENT_ID
           AND PARTY.EDI_CLASS_ID = :NEW.DOCUMENT_SENDER_ID
         GROUP BY COMPANY.COMPANY_ID;
        
        UPDATE GETP.EDI_CERTIF_MAIN
           SET COMPANY_ID = V_COMPANY_ID
         WHERE DOCUMENT_KEY = :NEW.DOCUMENT_KEY
            AND DOCUMENT_RECIPIENT_ID = :NEW.DOCUMENT_RECIPIENT_ID
            AND DOCUMENT_SENDER_ID = :NEW.DOCUMENT_SENDER_ID;

    END;
    END IF;

END;
/

 

 

위의 트리거인데

제가 변수로 사용한 V_COMPANY_ID 가 아래의 SELECT 조회 절의 INTO 에 제대로 담기지 않아서

UPDATE가 일어나지 않는거 같아요..

어느 부분이 잘 못 되었는지 알려주시면 감사하겠습니다^^

by 피터 [2008.12.24 17:16:25]
SELECT 문장의 GROUP BY결과값이 여러 개 나오지 않나요?
만일 그렇다면 커서를 사용하세요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입