有一个大表,大表由于录入时候有个空置,现在将空置赋予日期

  

1。该表很大8 t,由三列,其中create_time,现在要求修改成非空值,由于数据量比较大,因此采用分批来增加。

  

脚本如下
创建或替换过程PRC_UPDATE_CREATE_TIME
start_num整数;
start_date日期;总数
,
update_count整数;
per_loop_count整数;

dbms_output开始。put_line(开始批量更新);

  

start_num:=1;——开始周期
per_loop_count:价值=100;——每循环处理数
start_date:=to_date(' 20100101 ', '名称');——开始日期create_time

  

/得到更新记录的总数/
select count(1)总从tmp_loan_file_data
CREATE_TIME是null;

  

dbms_output。put_line(总数:);
dbms_output.put_line(总);

  

update_count:=总/per_loop_count;
如果(mod(总per_loop_count)比;0)然后
update_count:=update_count + 1,
结束如果;

  

dbms_output。put_line(“循环:”);
dbms_output.put_line (update_count);

  

/循环更新记录/
, start_num & lt;=update_count循环

  

dbms_output。put_line(“循环seq:”);
dbms_output.put_line (start_num);

  

并入tmp_loan_file_data src_tab使用(选择t
。rowid从tmp_loan_file_data摆脱
t
, t。CREATE_TIME空
, rownum祝辞=1
和rownum & lt;=per_loop_count) sel_tmp (src_tab
。rowid=sel_tmp.rid)
当匹配
更新设置CREATE_TIME=start_date;

  

start_num:=start_num + 1,
start_date:=start_date + 1,
提交;
结束循环;

  

dbms_output。put_line(“批量更新终结”);
结束PRC_UPDATE_CREATE_TIME;

有一个大表,大表由于录入时候有个空置,现在将空置赋予日期