Oracle使用游标批量更新表数据

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;


猜你喜欢

转载自blog.csdn.net/ptsx0607/article/details/80259049