【问题标题】:ORA-14400: - "inserted partition key does not map to any partition"ORA-14400: - “插入的分区键未映射到任何分区”
【发布时间】:2016-06-18 10:42:25
【问题描述】:

我的表格包含以下列:

foo integer default 0 
'ID', 'INTEGER'
'date','DATE'
'F','VARCHAR2(20 CHAR)'

我尝试插入以下值:

insert into table (foo,id,date,F) values('1','4','01.01.2016','aa');

我收到以下错误:

SQL 错误:ORA-14400 插入的分区键未映射到任何 划分 14400. 00000 - “插入的分区键没有映射到任何分区”

*原因:尝试将记录插入到范围或组合中 范围对象,具有超出的连接分区键 最后一个分区的连接分区绑定列表 -OR- 尝试将记录插入到 List 对象中 与指定的文字值不匹配的分区键 对于任何分区。 *行动:不要插入钥匙。或者,添加一个能够接受的分区 键,或者将与键匹配的值添加到分区规范

我做错了什么?

更新:

call meta_ddl.create_table  ('table1','create table table1 (foo integer default 0)  $#TABLEOPTIONS#$');
call meta_ddl.add_column    ('table1','ID', 'INTEGER');
call meta_ddl.add_column_with_default('table1','DATE','DATE', 'SYSDATE', 1);
call meta_ddl.add_column    ('table1','F','VARCHAR2(20 CHAR)');

【问题讨论】:

  • 可能您未能设置分区来保存您尝试插入表中的值。但是由于问题缺少有关如何对表进行分区的详细信息,因此您要么必须自己调查,要么使用完整的表描述(包括分区子句)更新您的问题。
  • 请将相关表的完整 DDL(CREATE 语句)添加到您的问题中。
  • @Codo 我已经更新了
  • 什么是 $#TABLEOPTIONS#$?
  • 我怀疑这是整个 DDL。您的表必须有分区。是否隐藏在$#TABLEOPTIONS#$中?

标签: oracle oracle12c


【解决方案1】:

“foo”和“id”列是整数类型,不需要在插入时在它们周围添加单个刻度。不确定这是否会导致您的特定问题,但它无济于事。

insert into table (foo,id,date,F) values(1,4,'01.01.2016','aa');

您可能还试图插入一个超出分区范围的值。我以前在日期范围内看到过这种情况。但除非您发布表定义,否则我们无法回答。

【讨论】:

  • 这不是问题。我已经更新了问题
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 2017-08-15
相关资源
最近更新 更多