最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle间隔分区

来源:动视网 责编:小采 时间:2020-11-09 12:20:23
文档

Oracle间隔分区

Oracle间隔分区:在oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inserted partition key does not 在Oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inser
推荐度:
导读Oracle间隔分区:在oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inserted partition key does not 在Oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inser


在oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inserted partition key does not

在Oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inserted partition key does not map to any partition,,因为这个原因我已经半夜起来过好几次。

如果oracle在更新记录或者新增记录的时候发现没有匹配的分区能自动分区该多好,在oracle11g中oracle实现了这个功能。

看个简单的例子。

etl@DWTEST19> create table part_01
2 (
3 col01 date
4 )
5 partition by range(col01)
6 (
7 partition p201001 values less than ( to_date('20100201','yyyymmdd') ),
8 partition p201002 values less than ( to_date('20100301','yyyymmdd') )
9 )
10 /

Table created.
etl@DWTEST19> insert into part_01 values( to_date('20100301','yyyymmdd'));
insert into part_01 values( to_date('20100301','yyyymmdd'))
*
ERROR at line 1:
ORA-14400: inserted partition key does not map to any partition

可以看出在没有分区满足的时候会报错。

下面看看oracle11g提供的间隔分区功能
etl@DWTEST>create table part_01
2 (
3 col01 date
4 )
5 partition by range(col01)
6 interval (numtoyminterval(1,'MONTH'))
7 (
8 partition p201001 values less than ( to_date('20100201','yyyymmdd') )
9 )
10 /

Table created.

Elapsed: 00:00:00.08
etl@DWTEST>insert into part_01 values( to_date('20101001','yyyymmdd') );

1 row created.

Elapsed: 00:00:00.07
etl@DWTEST>select partition_name,high_value
2 from user_tab_partitions
3 where table_name='PART_01';

PARTITION_NAME HIGH_VALUE
--------------- --------------------------------------------------
P201001 TO_DATE(' 2010-02-01 00:00:00', 'SYYYY-MM-DD HH24:
MI:SS', 'NLS_CALENDAR=GREGORIAN')

SYS_P36675 TO_DATE(' 2010-11-01 00:00:00', 'SYYYY-MM-DD HH24:
MI:SS', 'NLS_CALENDAR=GREGORIAN')

Elapsed: 00:00:00.45
etl@DWTEST>insert into part_01 values( to_date('20100901','yyyymmdd') );

1 row created.

Elapsed: 00:00:01.37
etl@DWTEST>select partition_name,high_value
2 from user_tab_partitions
3 where table_name='PART_01';

PARTITION_NAME HIGH_VALUE
--------------- --------------------------------------------------
P201001 TO_DATE(' 2010-02-01 00:00:00', 'SYYYY-MM-DD HH24:
MI:SS', 'NLS_CALENDAR=GREGORIAN')

SYS_P36675 TO_DATE(' 2010-11-01 00:00:00', 'SYYYY-MM-DD HH24:
MI:SS', 'NLS_CALENDAR=GREGORIAN')

SYS_P36676 TO_DATE(' 2010-10-01 00:00:00', 'SYYYY-MM-DD HH24:
MI:SS', 'NLS_CALENDAR=GREGORIAN')

Elapsed: 00:00:00.43

可以看出Oracle很好的为我们处理了加分区的操作。

但是,分区名,分区名怎么指定呢?

文档

Oracle间隔分区

Oracle间隔分区:在oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inserted partition key does not 在Oracle 11g之前,如果我们往一个没有匹配到满足分区的RANGE分区写记录的时候会报 ORA-14400: inser
推荐度:
标签: 数据库 间隔 分区
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top