아래 트리거를 생성 했는데 실행을 하면
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;
/