1
跟進我先前的查詢Update Query,我繼續改寫了整個查詢,如下所示:更新查詢無法正確地更新 - 甲骨文
表A是由一個連接到表B,以一對多的關係上[PRD_ID, PRD_VER, PY_ID, TPY_ID]
和表C通過[PRD_GTIN_ID]
上的一對一關係連接到表B.我需要複製列X,Y,Z表A到X,Y,Z表C
DECLARE CURSOR eachRec IS
SELECT cgl.prd_gtin_id,
tc.PRD_SPL_OR_QTY_MULTIPLE
FROM B cgl,
A tc
WHERE cgl.prd_id = tc.prd_id
AND cgl.prd_ver = tc.prd_ver
AND cgl.py_id = tc.py_id
AND cgl.tpy_id = tc.tpy_id;
BEGIN
FOR EACH_ROW IN eachRec
LOOP
UPDATE C
SET C.PRD_ORDER_QTY_MULTIPLE=EACH_ROW.PRD_ORDER_QTY_MULTIPLE
WHERE C.prd_gtin_id = EACH_ROW.prd_gtin_id;
END LOOP;
END;
除了更新權相匹配的查詢上,還更新隨機行在這是不正確。如果有人能幫我找到我寫過的查詢的問題?
爲什麼使用遊標?只需要一個更新語句就可以達到同樣的效果,這個語句比光標方法快得多。 –
那麼,我不關心這個查詢的性能。這只是一次完成(類似於需要更新30K記錄的遷移)。我唯一的擔心顯然是查詢結果的準確性。 –