oracle使用cursor动态更新线上初始化数据
2013-06-03 15:02
585 查看
背景:线上系统初始化数据需要调整,同时剩余数量也需要动态的调整
DECLARE CURSOR c_res IS SELECT B.PRESENT_NAME,B.PRESENT_PRESENT_LEFT_NUM,B.PRESENT_NUM FROM table B; commitsum NUMBER(10); leftNum NUMBER(4); presentNum NUMBER(4); BEGIN commitsum :=0; presentNum:=0; FOR r_res IN c_res LOOP commitsum :=commitsum+1; leftNum:=r_res.PRESENT_NUM-r_res.PRESENT_LEFT_NUM; CASE WHEN r_res.PRESENT_NAME='1'; THEN presentNum=100; WHEN r_res.PRESENT_NAME='2'; THEN presentNum=200; END CASE; UPDATE table set PRESENT_NUM=presentNum,PRESENT_LEFT_NUM = presentNum-leftNum WHERE PRESENT_NAME = r_res.PRESENT_NAME; IF(commitsum>100) THEN COMMIT; commitsum:=0; END IF; END LOOP; COMMIT; END;
相关文章推荐
- Oracle 存储过程中使用cursor 游标遍历数据
- 项目中openlayer中使用,完整解决方案(数据库矢量数据,动态更新,分层,编辑)
- oracle使用 merge 更新或插入数据
- oracle使用dblink和cursor更新不同数据库的记录
- Oracle数据字典的使用(更新中)
- Excel中导入到oracle使用merge into 差异性更新数据库
- Oracle 存储过程中使用cursor 游标遍历数据
- Oracle 使用MERGE INTO 语句更新数据
- Vue使用echarts数据动态更新,Y轴刻度固定或者自适应
- 【android】Cursor记录集游标、ListView和SimpleCursorAdapter、ListView数据动态更新
- Oracle数据使用事务异常—Command 的 Transaction 属性尚未初始化异常
- Oracle使用游标更新数据
- Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果
- Oracle 使用MERGE INTO 语句更新数据的脚本
- 使用MyBatis批量更新数据到Oracle的表中
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 使用MERGE INTO 语句更新数据
- 使用oracle 闪回查询找回误更新的数据
- ORACLE使用触发器更新数据