【问题标题】:How insert data from a temporary table into partitioned table in oracle/sql using merge statement如何使用合并语句将临时表中的数据插入到 oracle/sql 中的分区表中
【发布时间】:2020-02-13 11:37:36
【问题描述】:

我必须编写一个合并语句来将临时表中的数据插入到分区表中,并且出现以下错误:-

错误报告 - SQL 错误:ORA-14400:插入的分区键未映射到任何分区

  1. 我必须在会话方面进行,因此必须使用无法分区的临时表。

【问题讨论】:

  • 你的insert语句是什么,表定义是什么?
  • 我觉得临时表可以分区
  • 问题是您的临时表中的数据中有一个值,它没有任何地方可以放在永久分区表中。临时表是否分区无关紧要,您使用MERGEINSERT 语句也无关紧要。您需要找出用作分区键的临时表字段中的哪个值在分区表中没有相应的分区。我们需要查看临时表中的每一行,以及分区表上定义的所有分区才能帮助您解决此问题。
  • @WernfriedDomscheit 我已经搜索过了,似乎我们不能

标签: sql oracle merge temp-tables data-partitioning


【解决方案1】:

如果您将数据集插入分区表,oracle 想要放置它 进入正确的partionen。您必须在整个时间段内创建 分区,例如 MONTHY 分区:

ALTER TABLE sales ADD 
PARTITION sales_q1_2007 VALUES LESS THAN (TO_DATE('01-APR-2007','dd-MON-yyyy')),
PARTITION sales_q2_2007 VALUES LESS THAN (TO_DATE('01-JUL-2007','dd-MON-yyyy')),
PARTITION sales_q3_2007 VALUES LESS THAN (TO_DATE('01-OCT-2007','dd-MON-yyyy')),
PARTITION sales_q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy'))
;

如果你已经这样做了,你可以插入所需的数据。 祝你好运,

【讨论】:

  • 对于这样的设置你最好使用INTERVAL分区,然后Oracle会自动创建分区。
猜你喜欢
  • 1970-01-01
  • 2019-12-10
  • 2018-03-30
  • 2020-05-30
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 2021-12-26
相关资源
最近更新 更多