안녕하세요 트리거 관련 질문입니다. 0 0 1,824

by 사서 [PL/SQL] [2015.08.25 11:31:09]


아래 트리거를 생성 했는데 실행을 하면

ORA-01008: 일부 변수가 바인드되지 않았습니다.
ORA-02063: line가 선행됨 (DBBACK3로 부터)
ORA-06512: "TAGGING.CMC_TRI_UP", 줄 29에서
ORA-04088: 트리거 'TAGGING.CMC_TRI_UP'의 수행시 오류

이란 에러가 떠서 당황 하고 있습니다.

MERGE INTO tagging.TBMO_UPLOAD_MASTER_TEST@DBBACK3 이 구문에서 TEST로 @DBBACK3를 빼고 실행하면 정상 실행 됩니다. 데이터를 다른 서버로 넘겨야 하는데 여기에서 막히네요 조언 부탁 드립니다.

 

감사합니다.

 

CREATE OR REPLACE TRIGGER TAGGING.CMC_TRI_UP
AFTER INSERT ON TAGGING.TB_CMC_VIDEO_LOG_UP
FOR EACH ROW
WHEN (
 NEW.RESULT_STATUS NOT IN('[NONL]','[UNKN]') and NEW.BOARD_CID NOT IN (1,0)
      )
DECLARE

 V_SITE_ID varchar2(16);
 V_UPLOAD_KEY varchar2(50);
 V_FILE_AMOUNT number;
 V_PRICE_AMOUNT number;
        V_UP VARCHAR2(10);
 V_B VARCHAR2(10);

BEGIN
 

 SELECT nvl(max(FILE_SIZE),0) INTO V_FILE_AMOUNT
 FROM tagging.MU_RMI_HASH_INFO@DBBACK3
 WHERE M_HASH = :NEW.m_hash
 ;


 SELECT SITE_ID INTO V_SITE_ID
 FROM ospmon.TBMO_BASIC_SITE@DBBACK3
 WHERE OSP_ID = :NEW.osp_id
 ;
 

 V_UPLOAD_KEY := V_SITE_ID||:NEW.BOARD_CID;
 V_PRICE_AMOUNT := nvl(:NEW.price,0);


 MERGE INTO tagging.TBMO_UPLOAD_MASTER_TEST@DBBACK3 A
 USING DUAL ON
  (A.UPLOAD_KEY = V_UPLOAD_KEY)
 WHEN MATCHED THEN
  UPDATE
  SET
  A.FILE_COUNT = (A.FILE_COUNT+ 1),
  A.PRICE_AMOUNT = (A.PRICE_AMOUNT + :NEW.PRICE),
  A.REG_DATE = (:NEW.REG_DATE)
 WHEN NOT MATCHED THEN
  INSERT
  (
      A.UPLOAD_KEY,
      A.SITE_ID,
      A.POST_ID,
      A.POST_NAME,
      A.POST_GENRE,
      A.FILE_COUNT,
      A.FILE_AMOUNT,
      A.PRICE_AMOUNT,
      A.UPLOADER_ID,
      A.FILTERING_RST,
      A.REG_DATE
  )
  values
  (
      V_UPLOAD_KEY,
      V_SITE_ID,
      :NEW.board_cid,
      :NEW.board_cnm,
      decode(:NEW.VIDEO_TYPE_CD,10,'영화',11,'드라마',12,'애니',13,'예능',14,'교육',15,'스포츠',16,'시사교양',18,'성인',99,'음란물'),
      1,
      V_FILE_AMOUNT,
      V_PRICE_AMOUNT,
      :NEW.user_id,
      :NEW.RESULT_STATUS,
      :NEW.REG_DATE
  );

END;
/

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