oracle 简历分区,间隔分区表如何确定某条记录属于哪一个分区?

本帖最后由 panda_rabbit 于 2012-10-8 11:11 编辑

如下,我建了一个按天划分的间隔分区表,需要定期对历史数据清理,也就是删除无用的历史分区,但问题是怎么根据一个日期确定对应的分区呢?

create table inter_test

(id number,operate_time date)

partition by range(operate_time)

interval(numtodsinterval (1,'day'))

(partition p20121001 values less than (to_date('2012-10-02','YYYY-MM-DD')));

SQL> insert into inter_test values(1,sysdate);

1 row inserted

SQL> insert into inter_test values(1,sysdate-1);

1 row inserted

SQL> insert into inter_test values(1,sysdate-2);

1 row inserted

SQL> insert into inter_test values(1,sysdate-3);

1 row inserted

SQL> commit;

SQL> select partition_name,high_value from user_tab_partitions where table_name='INTER_TEST';

PARTITION_NAME                 HIGH_VALUE

------------------------------ --------------------------------------------------------------------------------

P20121001                    TO_DATE(' 2012-10-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

SYS_P24                        TO_DATE(' 2012-10-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

SYS_P23                        TO_DATE(' 2012-10-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

SYS_P22                        TO_DATE(' 2012-10-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

SYS_P21                        TO_DATE(' 2012-10-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

表user_tab_partitions列中有个high_value,貌似可以根据这一列来判断,但该列是long类型,想了好几个方法都无法对该列进行处理。

问一下大家,有没有好方法求出一个日期对应的分区名呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值