ORA-14099: all rows in table do not qualify for specified partition

1.
创建分区表

create table range_part_range(id number, deal_date date, contents varchar2(1000))

partition by range(deal_date)

(

partition p1 values less than (to_date(‘2015-01-21‘, ‘yyyy-mm-dd‘)),

partition p2 values less than (to_date(‘2015-01-22‘, ‘yyyy-mm-dd‘)),

partition p3 values less than (to_date(‘2015-01-23‘, ‘yyyy-mm-dd‘)),

partition p_max values less than (maxvalue)

);

插入记录

insert into range_part_range values(1, to_date(‘2015-01-21‘, ‘yyyy-mm-dd‘), ‘a‘);

insert into range_part_range values(2, to_date(‘2015-01-22‘, ‘yyyy-mm-dd‘), ‘b‘);

insert into range_part_range values(3, to_date(‘2015-01-23‘, ‘yyyy-mm-dd‘), ‘c‘);

检索记录

select count(*) from range_part_range;

COUNT(*)

----------

3

select count(*) from range_part_range partition(p1);

COUNT(*)

----------

0

select count(*) from range_part_range partition(p2);

COUNT(*)

----------

1

select count(*) from range_part_range partition(p3);

COUNT(*)

----------

1

select count(*) from range_part_range partition(p_max);

COUNT(*)

----------

1

2.
创建普通表,用于分区交换

create table range_tbl (id number, deal_date date, contents varchar2(1000));

插入记录

insert into range_tbl values(1000, to_date(‘2015-01-25‘, ‘yyyy-mm-dd‘), ‘j‘);

3.
执行分区交换

alter table range_part_range exchange partition p3 with table range_tbl

*

ERROR at line 1:

注意:此处range_tbl中的数据明显不是在p3分区的范围之内,而是在p_max分区范围内,因此报了错

4. 解决方案一:换一个正确的分区

alter table range_part_range exchange partition p_max with table range_tbl;

select * from range_tbl;中记录现在是原来p_max的记录,

select * from range_part_range partition(p_max);中记录现在是原来range_tbl的记录。

解决方案二:使用without validation

alter table range_part_range exchange partition p3 with table range_tbl without validation;

select * from range_tbl;中记录现在是原来p3的记录,

select * from range_part_range partition(p3);中记录现在是原来range_tbl的记录。

总结

1. 对于交换分区,普通表中若有数据,要确保其值在交换的分区范围内,否则会提示错误。

2. 尽量不要用without validation,这样会绕开校验,像上例,p3分区会包含一个不在其分区范围内的数据,有可能扰乱了分区的目的。

时间: 2024-10-01 07:23:31

ORA-14099: all rows in table do not qualify for specified partition的相关文章

Partition table的switch条件2:Partition 的隐式Check约束 和Nullability

Partition column允许为Null,Null是最小值,存在于Partition Number=1的partition中. Any data with a NULL in the partition column will reside in the leftmost partition. NULL is considered smaller than the minimum value of the data type’s values. Partition Function 定义了

Part 10 AngularJS sort rows by table header

Here is what we want to do 1. The data should be sorted when the table column header is clicked 2. The user should be able to sort in both the directions - ascending and descending. Clicking on the column for the first time should sort the data in as

ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)

版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内容用于商业用途,将保留追究其法律责任的权利.如果有问题,请以邮箱方式联系作者([email protected]). 前言 本文着重总结分区表的日常维护操作以及相应的注意事项. 本文涉及的日常维护内容包括: 增加分区(add) 移动分区(move) 截断分区(truncate) 删除分区(drop)

[Hive - LanguageManual] Create/Drop/Alter Database Create/Drop/Truncate Table

Hive Data Definition Language Hive Data Definition Language Overview Create/Drop/Alter Database Create/Drop/Truncate Table Alter Table/Partition/Column Create/Drop/Alter View Create/Drop/Alter Index Create/Drop Function Create/Drop/Grant/Revoke Roles

postgresql----temporary table和unlogged table

一.TEMPORARY|TEMP TABLE 会话级或事务级的临时表,临时表在会话结束或事物结束自动删除,任何在临时表上创建的索引也会被自动删除.除非用模式修饰的名字引用,否则现有的同名永久表在临时表存在期间,在本会话或事务中是不可见的.另外临时表对其他会话也是不可见的,但是会话级的临时表也可以使用临时表所在模式修饰的名字引用. 创建临时表的语法: CREATE TEMP tbl_name()ON COMMIT{PRESERVE ROWS|DELETE ROWS|DROP}; PRESERVE

日更第11期-2015-3-27-processing教程-API篇-第一讲-map(),Table,loadTable(),norm(),lerp()

hI!!今天上线发现我多了一个粉丝!!哇,好高兴! 不过我昨天食言了,没有继续日更......希望不会掉粉..... 不过那是有原因的,我昨天一直在找数据,终于今天给整理好了,我打算这个周末整一整.然后就可以出真正厉害的教程啦!! 我先说一下我接下来会出的教程,然后说说今天发的这个到底是什么. 接下来: 1,美国失业数据可视化 2,地图数据可视化案例教学(案例来自processing教学书visualizing data) 3,中国高考分地域分析 4,API教程 然后说说今天这是干啥. 简单来说

14.7 InnoDB Table Compression

pdf:http://download.csdn.net/detail/paololiu/9576929 14.7 InnoDB Table Compression 14.7.1 Overview of Table Compression 14.7.2 Enabling Compression for a Table 14.7.3 Tuning Compression for InnoDB Tables 14.7.4 Monitoring Compression at Runtime 14.7.

dbms_stats.gather_table_stats与analyze table 的区别[转贴]

Analyze StatementThe ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be computed exactly, or estimated based on a specific number of rows, or a percentage of rows: ANALYZE TABLE employees

js导出table中的EXCEL总结

导出EXCEL一般是用PHP做,但是项目中,有时候PHP后端工程师返回的数据不是我们想要的,作为前端开发工程师,把对应的数据编号转换为文字后,展示给用户,但是,需求要把数据同时导出一份EXCEl.无奈之下,我只能用js导出table中的数据了. 导出EXCEl一般是自己人用的,所以用js导出,因为js导出EXCEL一般情况下兼容性不是很好,很多只是兼容IE浏览器,还要设置在工具栏中进行设置才能导出,因为会相对比较烦.下面介绍几种方法: 一.js导出EXCEl带单元格合并[已验证,比较好用] //