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;