Я пытаюсь выполнить Upsert in oracle посредством инструкции Merge. Теперь таблица, что я пытаюсь слиться имеет составленное первичную, так что я creat4ed мой запрос так:Ошибка нескольких столбцов в заявлении Oracle Merge
MERGE INTO CONTINGENT_COMMISSION CC USING
(SELECT
'ad_adavila' CC_PROD_USERID,
to_number('42.22', '999,999,999.99') CC_COMM_PERCENT,
to_number('217,904.08', '999,999,999.99') CC_PREMIUM,
'2' CC_TRIMESTER,
'2013' CC_YEAR
FROM DUAL) SRC
ON (CC.CC_PROD_USERID || CC.CC_TRIMESTER || CC.CC_YEAR = SRC.CC_PROD_USERID || SRC.CC_TRIMESTER || SRC.CC_YEAR)
WHEN MATCHED THEN
UPDATE
SET CC.CC_COMM_PERCENT = to_number('42.22', '999,999,999.99'),
CC.CC_PREMIUM = to_number('217,904.08', '999,999,999.99'),
CC.CC_TRIMESTER = '2',
CC.CC_YEAR = '2013'
WHEN NOT MATCHED THEN
INSERT
(CC_PROD_USERID,CC_COMM_PERCENT,CC_PREMIUM,CC_TRIMESTER,CC_YEAR)
VALUES
('ad_adavila',to_number('42.22', '999,999,999.99'),to_number('217,904.08', '999,999,999.99'),'2','2013');
Теперь я получаю следующее сообщение об ошибке, когда я пытаюсь запустить этот запрос.
ORA-38104: Столбцы, указанные в пункте ON не может быть обновлена: «CC» «CC_TRIMESTER»
Aparently это вызвано тем, что положение ON имеет более одного столбца;. что является обязательным в моем случае из-за составленного первичного ключа:
CONSTRAINT "CONTINGENT_COMMISSION_PK" PRIMARY KEY ("CC_PROD_USERID", "CC_TRIMESTER", "CC_YEAR")
Есть ли все, чтобы сделать эту работу?
Спасибо,
Это было. Спасибо! – sonar