Я хочу просто обновить один набор таблиц строк с параметрами, переданными, а не из другой таблицы, но чтобы определить строки, мне нужно выполнить левое соединение. Вот запрос на выбор:
SELECT *
FROM SAMPLE_STATUS pss
LEFT JOIN QC q ON q.SAMPLE_ID = pss.SAMPLE_ID
WHERE q.CONTRACT_CLN_ID = 28 AND q.LOT = 1
Я пробовал несколько примеров, вот последний, с одним столбцом
UPDATE
(SELECT pss.APP_WIN_START_DT, TO_CHAR(sysdate, 'YYYYMMDD') AS NEW_AWSD
FROM SAMPLE_STATUS pss
LEFT JOIN QC q ON q.SAMPLE_ID = pss.SAMPLE_ID
WHERE q.CONTRACT_CLN_ID = 28 AND q.LOT = 1) pq
SET APP_WIN_START_DT = NEW_AWSD
Несколько записей извлекаются из таблицы Q C которые присоединяются к таблице Sample_Status через идентификатор образца. Я получаю ошибку:
SQL Error: ORA-01779: cannot modify a column which maps to a non key-preserved table
01779. 00000 - "cannot modify a column which maps to a non key-preserved table"
*Cause: An attempt was made to insert or update columns of a join view which
map to a non-key-preserved table.
*Action: Modify the underlying base tables directly.
Заранее спасибо.