dkfr.net
当前位置:首页 >> orAClE 中怎么大批量的执行UPDATE语句 >>

orAClE 中怎么大批量的执行UPDATE语句

你可以写一个PLSQL命令块通过执行UPDATE命令 begin for i in 1 .. 100000 loop update a set a.1=x where a.2=i if mod(i,5000)=0 then commit; end if; end loop; end; /

如果是一个表,就是update 表 set 列=值 where 列=条件。。。 如果多表联动,那可以用存储过程或是触发器 问题太笼统,描述详细一些吧

建议你搞个form表单,然后填入相应数据再直接一句话全部插入就行了 比如

建议你通过某个条件把这150万条记录,分成多个部分,写个存储过程,依次执行,执行完一部分就提交一部分。 这样即即减少了对内存的要求,也防止玩意update出错,还要花费大量的时间在回滚上。

可以直接更新多字段的,只要你有逻辑就行了 update tablename set yjd='',bn='',qsjd='' where ......

可能这一行数据,被别的 用户/会话 锁定了。 Oracle 多用户之间锁的处理 http://hi.baidu.com/wangzhiqing999/blog/item/43b64104ff39f300738b657c.html

update 表名 set 字段1=值1,字段2=值2 ...... 更新时最好加上where条件,不然所有数据都被更新了。

UPDATE TAB_1 t1 SET ( t1.f1 ,t1.f2 ) = (SELECT t2.f1 ,t2.f2 FROM TAB_2 t2 WHERE t1.f1 = t2.f2 AND t1.f2 = t2.f2 AND t1.f3 = t2.f3 ) WHERE EXISTS (SELECT 1 FROM TSRCREW.WK_UBH0200Z t2 WHERE t1.f1 = t2.f1 AND t1.f2 = t2.f2 AND t1...

方法一: 采用存储过程,使用循环,限制更新的条数,效率不是很高。。 方法二: 建立和目标表一样的结构的临时表(基于事务的临时表,保证主键一样),使用视图更新的操作。 update( select a.A列,b.A列 from t1 a,temp_t1 b where a.id=b.id) s...

一、 提高DML操作的办法: 简单说来: 1、暂停索引,更新后恢复.避免在更新的过程中涉及到索引的重建. 2、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表空间. 3、创建一临时的大的表空间用来应对这些更新动作. 4、...

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com