Oracle 表分区、子分区

		CREATE TABLE  temp_table
        (
            id           VARCHAR2(32) DEFAULT sys_guid() NOT NULL,
            datetime     DATE,
            filepath		 VARCHAR2(500 BYTE),
            filestate	 CHAR(1 BYTE),
            areacode	 VARCHAR2(20 BYTE),
            fancode		 VARCHAR2(20 BYTE)
        )
        partition by range(DATETIME) interval(numtoyminterval(1,'year'))
        subpartition by list(areacode)
        subpartition template
        (
            subpartition part_0001 values ('0001') tablespace MX, 
            subpartition part_0002 values ('0002') tablespace MX, 
            subpartition part_0003 values ('0004') tablespace MX, 
            subpartition part_0004 values ('0005') tablespace MX, 
            subpartition part_0005 values ('0006') tablespace MX, 
            subpartition part_0006 values ('0007') tablespace MX, 
            subpartition part_0007 values ('0008') tablespace MX, 
            subpartition part_0008 values ('0009') tablespace MX, 
            subpartition part_0012 values ('0012') tablespace MX, 
            subpartition part_0018 values ('0018') tablespace MX, 
            subpartition part_0019 values ('0019') tablespace MX, 
            subpartition part_0020 values ('0020') tablespace MX, 
            subpartition part_0021 values ('0021') tablespace MX, 
            subpartition part_0022 values ('0022') tablespace MX, 
            subpartition part_0023 values ('0023') tablespace MX,
            subpartition p_other values (default)
        )
        (
        partition sp1 values less than (to_date('2019-08-01', 'yyyy-mm-dd')) tablespace MX );

–创建局部前缀索引;分区键作为索引定义的第一列
create index local_prefixed_index on fan_temp (fcode) local;

–创建局部非前缀索引;分区键未作为索引定义的第一列

create index local_nonprefixed_index on fan_temp (fcode) local;

报的错误是:ORA-00907:错误是右括号;
说明:partition by range(substr(focde, 0,6))不可以用函数;如果确定要这样做,要新增加一个字段了,把这个字段的值通过(substr(fcode, 0,6)) 来增加进去(areacode),这样就可以利用这个字段来实现分区了;

查询表分区信息:

select * from user_tab_partitions a where
a.table_name=upper(‘temp_table’);//查询temp_table下的的分区信息;
select * from user_tab_subpartitions a where a.table_name=upper(‘temp_table’);查询temp_table下的的子分区信息;

查询表分区数据信息:

select * from temp_table PARTITION(sp1);//查询表分区名为“sp1”的数据信息;
select * from temp_table SUBPARTITION(SP1_PART_0006);//查询子分区名为“SP1_PART_00061”的数据信息;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值