首页 > 其他分享 >ORA-14099: all rows in table do not qualify for specified partition

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

时间:2023-06-19 14:06:10浏览次数:37  
标签:do rows partition range part tbl date table


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:
ORA-14099: all rows in table do not qualify for specified partition



注意:此处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分区会包含一个不在其分区范围内的数据,有可能扰乱了分区的目的。


标签:do,rows,partition,range,part,tbl,date,table
From: https://blog.51cto.com/u_13950417/6512788

相关文章

  • Tuxedo服务无法启动的问题解决(涉及MP下tlisten和TLOG的报错)
    今天同事说有一个Tuxedo应用在做测试,但重启了机器和Tuxedo环境后,服务仍无法启动,这次的问题排查和处理比较典型,值得梳理一次。应用环境:OS:SunOS5.9Tuxedo:9.1,MP双机环境问题现象:由于服务不可用,之前有同事使用kill干掉了一些Tuxedo进程,但无法确定具体范围。重启了服务器和Tuxedo......
  • Windows服务器定时重启设置教程 103.216.155.x
    Windows系统的任务计划程序,可以添加计划任务,设置任务开始时间及执行的间隔,实现应用的自动执行。例如:实现定时重启、关机等常见的功能。如何使用参考以下步骤1、新建一个文本文件,将文件后缀改为bat,然后添加如下代码shutdown-r-f-t 0该命令的作用是立即强制重启机器。在文件中单......
  • Windows10搭建NFS服务
    1.下载haneWINNFSServerforWindows链接如下:https://www.hanewin.net/nfs-e.htm2.安装并且执行haneWINNFSServer安装完后,打开hanWin如下:进入Edit->Preferences进入Exports->Editexportsfile2.1修改配置文件添加一行配置如下:D:\ldc_res-name:nfs*(rw,sync......
  • centos7-docker安装与配置kafka+zookeeper+kafkamanager
    一、默认docker环境已经OK拉镜像dockerpullwurstmeister/zookeeperdockerpullwurstmeister/kafkadockerpullsheepkiller/kafka-manager删镜像dockerrmi+镜像id查看镜像[root@build-science-system-services-03~]#dockerimages二、运行相关容器启动zookeeper:......
  • 20230406 9.2. 希尔排序( by Donald Shell )
    希尔排序(byDonaldShell)定义增量序列\(D_M>D_{M-1}>…>D_1=1\)对每个\(D_k\)进行\(D_k-间隔\)排序(k=M,M-1,…1)注意:\(D_k-间隔\)有序的序列,在执行\(D_{k-1}-间隔\)排序后,仍然是\(D_k-间隔\)有序的希尔增量序列原始希尔排序$D_M=N/2$......
  • Windows调试Oracle数据库问题的一些手段
    最近需要在Windows的跳板机上访问远程的Oracle数据库进行调试。Windows中只有个精简版OracleClient,以及PLSQLDeveloper客户端。如果用惯了Linux,再用Windows,确实不知所措。但这就是个从生疏到熟练的事儿,最近看的一本书中描述得很恰当,Themosteffectivewaytodealwithaworry......
  • VCL界面控件DevExpress VCL v23.1.3全新首发 - 支持Windows 11新主题
    DevExpressVCL Controls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv23.1官方正式版下载......
  • docker代理拉镜像
    1、创建dockerd相关的systemd目录,这个目录下的配置将覆盖dockerd的默认配置$sudomkdir-p/etc/systemd/system/docker.service.d2、新建配置文件/etc/systemd/system/docker.service.d/http-proxy.conf,这个文件中将包含环境变量[Service]Environment="HTTP_PROXY......
  • 不成生DOM的非主流Blazor UI开源啦!
      作者之前介绍了开发中的PixUI,为了适配Web应用采用了将C#通过Roslyn语法语义分析后转换为Javascript的方案,但是这样带来的问题是工程量较大,在短时间内无法达到生产级质量。因此在简单评估了Blazor技术后决定暂使用BlazorWebAssembly来实现PixUI的Web端。本文记录一些Blazor链......
  • Undo log日志回放
    引言:一个看起来正确的过程系统宕机后需要重启,重启过程中需要对事务涉及到的数据进行“整理”,包括:1.宕机时刻尚未提交的事务对数据的修改需要回滚实现整理的过程称之为“日志回放”。通过从后向前回放UndoLog日志,直到找到commit点为止,这样就保证了数据一致性。上面的过程看起来很......