想法:
1月份 对应 P1
2月份 对应 P2
3月份 对应 P3
但是分区是这样写的。
PARTITION P1 VALUES LESS THAN (DATE ‘2012-01-01’),
PARTITION P2 VALUES LESS THAN (DATE ‘2012-02-01’),
PARTITION P3 VALUES LESS THAN (DATE ‘2012-03-01’),
这样的话。每个分区对应的都是上个月份的数据。
即:
上年12月 对应 P1
1月份 对应 P2
2月份 对应 P3
请问建立分区该怎么写呢?
LESS THAN 是固定写法吗?有没有more than 或 greater than
DATE对应日期必须是月份的第一天。
抱歉没分了
oracle 范围分区问题
答案:2 悬赏:30 手机版
解决时间 2021-02-09 07:08
- 提问者网友:浩歌待明月
- 2021-02-08 15:26
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-02-08 15:41
这样写没有问题,把12个月的分区都写全就ok了
全部回答
- 1楼网友:西风乍起
- 2021-02-08 16:21
首先,里边有数据不太好办,不过可以这样
create table t_business_monitor_tmp as select * from t_business_monitor;
然后,把原表清空
truncate table t_business_monitor;
然后加上分区
alter table t_business_monitor add partition p201301 values less than (to_date(' 2013-02-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian') tablespace 表空间名;
看好了,前边的分区名是201301,后边的to_date的日期是20130201,不要弄错了,当然,这个可以指定使用的表空间,
这样的话,你要按照此语句建12个分区,最后一个就应该是名字为p201312 ,时间就是2014-01-01,
然后,把你之前的表的数据弄过来
insert into t_business_monitor select * from t_business_monitor_tmp;
commit;
最后把备份表删除
drop table t_business_monitor_tmp
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯