报错前pl/sql语句:
UPDATE "DEVELOP"."PRODUCE_PLAN_NEED_PRODUCT" A
SET A.REMAIN_AMOUNT=A.AMOUNT-
(SELECT BAMOUNT
FROM "DEVELOP"."VIEW_PLAN" B
WHERE B.PRODUCE_PLAN_ID=A.PRODUCE_PLAN_ID
AND B.PRODUCT_ID=A.PRODUCT_ID);
修改后pl/sql语句:
UPDATE "DEVELOP"."PRODUCE_PLAN_NEED_PRODUCT" A
SET A.REMAIN_AMOUNT=A.AMOUNT-
(SELECT BAMOUNT
FROM "DEVELOP"."VIEW_PLAN" B
WHERE B.PRODUCE_PLAN_ID=A.PRODUCE_PLAN_ID
AND B.PRODUCT_ID=A.PRODUCT_ID AND rownum =1);
原因:同一条件子查询返回多条语句,必加rownum限制
PL/SQL更新语句优化
本文介绍了一段PL/SQL更新语句的修改过程,为了解决同一条件子查询返回多条记录的问题,在更新语句中加入了ROWNUM限制条件,确保每次只更新符合特定条件的一条记录。
3695

被折叠的 条评论
为什么被折叠?



