最近迁数据库,眼睛都要看瞎了,有些分区表按天划分,2-3000个分区表,鼠标滚轮滚到冒烟。然后要把按天分区转成按月分区,开始还在分区原来的分区表的完整性,数据记录数。后来搞几张表后熟练了,直接找到最早日期的分区,然后按照每个月1号在excel上创建日期序列,然后将日期减去1,设置单元格式yyyymm,这样就获得按月分区的日期字段,比如P201501,然后将excel两列保存成一个txt,然后写一个bash

cat >table.sql <

create table mytable (

……

partition by range(datestr)

(

!

cat partls|while read p d

do

cat >>table.sql <

partition ${p} values less than ('${d}')

tablespace DEFAULT_TBS

pctfree 10

initrans 1

maxtrans 255

storage

{

initial 1M

next 1M

minextents 1

maxextents ulimtited

pctincress 0

),

!

done

cat >>table.sql <

);

--create index

create index ……

……

用这个脚本就能轻松的生成大量的分区表,也可以把原来的非分区表改造成按日期分区的分区表。