ORACLE写脚本实现数据大批量更新

时间:2022-02-23 14:53:35
如何通过ORACLE自身的工具写脚本或叫过程、触发器完成一系统列的大批量数据更新任务,不用其它编程工具实现
主要要实现以下目的,有两个表t1,t2,现在要更新t1某字段内容等于同表中的另一字段内容,更新一条并对应将更新后的此条信息插入t2表中,t1有需更新记录200万余条,写脚本如何实现,需要用什么,请大家介绍一下方法和思路

8 个解决方案

#1


update t1 set 字段=旧字段 ;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;

#2


是全表更新? 直接update....;insert.....;2条语句就可以了;
数据量大可以考虑通过主键分段。

#3


1.把t1索引删了
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...

#4


如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。

#5


是通过什么形式去更新的,写脚本,过程,函数,语法是怎么样的,主要就是两部分,更新一条对应插入一条

#6


写脚本!

#7


脚本格式还有语言类型可否介绍一下,或指明应该看那一方面的材料的。

#8


引用 4 楼 vc555 的回复:
如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。


引用这个方法,然后写一个存储过程,定时运行这个存储过程就行了

#1


update t1 set 字段=旧字段 ;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;

#2


是全表更新? 直接update....;insert.....;2条语句就可以了;
数据量大可以考虑通过主键分段。

#3


1.把t1索引删了
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...

#4


如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。

#5


是通过什么形式去更新的,写脚本,过程,函数,语法是怎么样的,主要就是两部分,更新一条对应插入一条

#6


写脚本!

#7


脚本格式还有语言类型可否介绍一下,或指明应该看那一方面的材料的。

#8


引用 4 楼 vc555 的回复:
如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。


引用这个方法,然后写一个存储过程,定时运行这个存储过程就行了