我有这段代码可以正确获取我想要的值:
SELECT
cq.CASE_ID,
cq.FNN_ID,
fnl.fnn,
nrfl.RANGE_ID AS NRF2_PROJ_ID,
ed.OWN_CODE,
nrft.actioned
FROM CASEQ cq
LEFT JOIN NRF_TABLE@esd nrft ON nrft.CASE_ID = cq.CASE_ID
LEFT JOIN FNN_LIST fnl ON cq.FNN_ID = fnl.ID
LEFT JOIN NRF_FNN_LIST@esd nrfl ON (nrfl.fnn = fnl.fnn
AND (nrfl.RP_ACTUAL_COMP_DATE is null
OR add_months(nrfl.RP_ACTUAL_COMP_DATE,6)>sysdate)
AND nrft.actioned is null)
LEFT JOIN ESD_HISTORY@esd ed on (cq.CASE_ID = ed.CASE_ID)
现在,我想用nrfl.RANGE_ID和ed.OWN_CODE的值更新CASEQ表(分别转换为CASEQ.RANGE_ID和CASEQ.OWN_CODE)。
我已经尝试了以下方法:
UPDATE caseq cq
SET (cq.OWN_CODE, cq.RANGE_ID) = (SELECT ed.OWN_CODE, nrfl.RANGE_ID
FROM CASEQ cq1
LEFT JOIN NRF_TABLE@esd nrft ON nrft.CASE_ID = cq1.CASE_ID
LEFT JOIN FNN_LIST fnl ON cq1.FNN_ID = fnl.ID
LEFT JOIN NRF_FNN_LIST@esd nrfl ON (nrfl.fnn = fnl.fnn
AND (nrfl.RP_ACTUAL_COMP_DATE is null
OR add_months(nrfl.RP_ACTUAL_COMP_DATE,6)>sysdate)
AND nrft.actioned is null)
LEFT JOIN ESD_HISTORY@esd ed on (cq1.CASE_ID = ed.CASE_ID)
)
此特定查询返回ORA-01427,并且在我尝试过的变体中出现了其他各种错误。有任何想法吗?
编辑:请勿将其标记为重复项。我已经看过建议的问题。