Oracle使用游标批量更新表数据:
BEGIN FOR JSC IN ( SELECT JS.* FROM SF_JMMJJS_T JS,SF_EBZCB_T CB,SF_JMYH_T YH WHERE JS.YHBH=CB.YHBH AND JS.MJBH=CB.MJBH AND JS.CNQ=CB.CNQ AND JS.YHBH=YH.YHBH AND JS.YSJE = 0 AND JS.SFMJ>0 AND JS.GNZT = '正常' AND JS.ZF = 0 AND JS.CNQ = '2016-2017' AND CB.ZT=2 AND YH.SFEBZ='是' AND YH.ZF=0 AND YH.GNZT = '正常' )LOOP UPDATE SF_JMMJJS_T SET YSJE=(CASE WHEN ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0)>JSC.MJYS THEN JSC.MJYS ELSE ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0) END) WHERE SF_JMMJJS_T.BH=JSC.BH; END LOOP; END; COMMIT;