Insert Update таблицы
Есть две таблицы. Нужно сделать Insert, Update в таблице R.USER с таблицы M.TEMP_USER.
Написал такой скрипт:
SELECT * FROM M.TEMP_USER;
SELECT * FROM R.USER;
MERGE INTO R.USER A
USING (SELECT PARID , HR , TYPE_ID , ACTIVE FROM M.TEMP_USER) B
ON (A.PARID = B.PARID AND A.TYPE_ID = B.TYPE_ID )
WHEN MATCHED THEN
UPDATE SET A.PARID = B.PARID,
A.HR = B.HR ,
A.TYPE_ID = B.TYPE_ID
WHEN NOT MATCHED THEN
INSERT(A.PARID , A.HR, A.TYPE_ID , A.ACTIVE)
VALUES(B.PARID , B.HR, B.TYPE_ID , B.ACTIVE )
, но выдает ошибку:
COLUMNS REFERENCED IN THE ON CLAUSE CANNOT BE UPDATE "PARID"
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
MERGE INTO T_USER A
USING TEMP_USER B
ON (A.PARID = B.PARID AND A.TYPE_ID = B.TYPE_ID )
WHEN MATCHED THEN
UPDATE SET A.HR = B.HR
WHEN NOT MATCHED THEN
INSERT(A.PARID , A.HR, A.TYPE_ID , A.ACTIVE)
VALUES(B.PARID , B.HR, B.TYPE_ID , B.ACTIVE )
PARID и TYPE_ID не следует обновлять, потому что они используются в выражении связывания.
И подзапрос в USING - не нужен.