采用存储过程的方式批量更新数据
2015-03-11 17:03
323 查看
采用存储过程的方式批量更新数据,Oracle中也可采用merge-update的方式更新,不过采用如下存储过程的方式会更快些
DECLARE MAX_ROWS NUMBER DEFAULT 5000; ROW_ID_TABLE DBMS_SQL.UROWID_TABLE; DATE_TIME_TABLE DBMS_SQL.DATE_TABLE; CURSOR C1 IS SELECT /*+ use_hash(t1,t2) parallel(t1,2) parallel(t2,2) */ T1.DATE_TIME, T2.ROWID FROM TEST_TABLE_1 T1, TEST_TABLE_2 T2 WHERE T1.TABLE_ID = T2.TABLE_ID AND T2.DATE_TIME IS NULL AND T1.DATE_TIME IS NOT NULL ORDER BY T2.ROWID; BEGIN OPEN C1; LOOP EXIT WHEN C1%NOTFOUND; FETCH C1 BULK COLLECT INTO DATE_TIME_TABLE, ROW_ID_TABLE LIMIT MAX_ROWS; FORALL I IN 1 .. ROW_ID_TABLE.COUNT UPDATE TEST_TABLE_2 SET DATE_TIME = DATE_TIME_TABLE(I), LCD=SYSDATE WHERE ROWID = ROW_ID_TABLE(I); COMMIT; END LOOP; CLOSE C1; END; /
相关文章推荐
- Oracle中采用存储过程的方式批量更新数据
- MYSQL存储过程:批量更新、插入数据、游标
- MYSQL存储过程:批量更新数据2(产品品牌)
- MYSQL存储过程:批量更新数据
- MYSQL存储过程:批量更新数据2(产品品牌)
- MYSQL存储过程:批量更新数据
- Postgresql存储过程--更新或者插入数据
- 数据报的接收过程详解---从网卡到L3层(非NAPI,即接收数据采用中断方式)
- 数据报的接收过程详解---从网卡到L3层(非NAPI,即接收数据采用中断方式)
- ASP.NET中的可更新数据的打印报表(前后台设置与存储过程)
- 存储过程实现插入更新数据
- Oracle分页(limit方式的运用)+付上SqlServer分页+千万级数据分页的存储过程
- 循环批量更新的的存储过程(属于转载)
- MSSQL中批量修改数据表和存储过程的所有者
- Oracle分页(limit方式的运用)+付上SqlServer分页+千万级数据分页的存储过程
- [MSSQL]存储过程示例(拷贝数据表--游标使用--更新数据-日期函数的使用)
- 存储过程,更新满足条件的数据
- [导入]批量插入数据的存储过程
- .Net下批量删除数据的存储过程问题(用动态SQL )
- Oracle利用存储过程批量insert造数据和分批提交删除的例子