当前位置:Oracle研究中心 > 开发DBA >
时间:2016-06-28 22:28 来源:Oracle研究中心 作者:惜分飞 点击: 次
CREATE TABLE [dbo].[data_log]( [start_time] [datetime] NULL DEFAULT (getdate()), [min_id] [int] NULL, [max_id] [int] NULL, [end_time] [datetime] NULL DEFAULT (getdate() )
CREATE PROCEDURE [dbo].[insert_more](@min_data int,@max_data int) as begin --开始处理 insert into data_log values(getdate(),@min_data,@max_data,getdate()) --处理程序 INSERT INTO test_1 SELECT t1.name, t2.name, t1.id FROM t_1 t1, t_2 t2 WHERE t1.id = t2.id AND t1.id<=@max_data AND t1.id>@min_data --结束处理 update data_log set end_time=getdate() where min_id=@min_data and max_id=@max_data end
CREATE PROCEDURE [dbo].[get_list](@min_id int,@max_id int,@mode int) AS declare @i int declare @max_m int begin set @i=0 while @i<=(@max_id-@min_id)/@mode begin set @max_m=@min_id+(@i+1)*@mode if @max_m>@max_id set @max_m=@max_id print 'EXEC [dbo].[insert_more] @min_data = '+CAST(@min_id+@i*@mode as VARCHAR(50))+',@max_data = '+CAST(@max_m as VARCHAR(50))+';' set @i=@i+1 END end
利用3的过程,输入最小id,最大id,取值间隔,生成需要执行2过程的sql语句,执行这些语句完成操作,通过日志监控操作情况
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【案例】Oracle t-sql 更新大批量数据 更新两张大数据表案例
本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/616.html
Powered by Oracle研究中心 OraclePlus Inc.
BY DedeCMS 京ICP备14022373号-5
声明:Oracle研究中心部分文章源自互联网,转载均按原文作者要求转载,如有疑问联系QQ:1026002015,协商未果24小时删除。