在预构建表上执行并行分区时出错

时间:2015-01-23 10:34:21

标签: oracle oracle10g

SQL> CREATE TABLESPACE sf1 DATAFILE 'sf1.dbf' SIZE 40M ONLINE;
Tablespace created.

SQL> CREATE TABLESPACE sf2 DATAFILE 'sf2.dbf' SIZE 40M ONLINE;
Tablespace created.

SQL> CREATE TABLESPACE sf3 DATAFILE 'sf3.dbf' SIZE 40M ONLINE;
Tablespace created


SQL>  CREATE TABLE part_sales_tab_mv(time_id, cust_id, sum_dollar_sales, sum_unit_sale)
      2       PARALLEL PARTITION BY RANGE (time_id)
      3          (PARTITION month1
      4          VALUES LESS THAN (TO_DATE('31-12-1998', 'DD-MM-YYYY'))
      5          PCTFREE 0 PCTUSED 99
      6          STORAGE (INITIAL 64k NEXT 16k PCTINCREASE 0)
      7          TABLESPACE sf1,
      8          PARTITION month2
      9          VALUES LESS THAN (TO_DATE('31-12-1999', 'DD-MM-YYYY'))
     10        PCTFREE 0 PCTUSED 99
     11        STORAGE (INITIAL 64k NEXT 16k PCTINCREASE 0)
     12        TABLESPACE sf2,
     13        PARTITION month3
     14        VALUES LESS THAN (TO_DATE('31-12-2000', 'DD-MM-YYYY'))
     15       PCTFREE 0 PCTUSED 99
     16       STORAGE (INITIAL 64k NEXT 16k PCTINCREASE 0)
     17       TABLESPACE sf3)  AS
     18       SELECT s.time_id, s.cust_id, SUM(s.amount_sold) AS sum_dollar_sales
     19       SUM(s.quantity_sold) AS sum_unit_sales
     20       FROM sales s GROUP BY s.time_id, s.cust_id;
     CREATE TABLE part_sales_tab_mv(time_id, cust_id, sum_dollar_sales, sum_unit_
    sale)
  

第1行的错误:
  ORA-12801:在并行查询服务器P000中发出错误信号   ORA-14400:插入的分区键不映射到任何分区

我正在oracle 10g上的sh schema的sales表上执行此查询。 plz帮我解决错误。查询的问题如下:

按照指示对预先构建的表part_sales_tab_mv进行分区:

  1. 创建一个包含三个月以上分区的表part_sales_tab_mv
  2. 注册物化视图以使用预构建表。此物化视图必须符合查询重写的条件

1 个答案:

答案 0 :(得分:1)

您正在创建三个分区:

  • month1包括截至1998-12-30 23:59:59
  • 的所有日期
  • month2包括1998-12-31 00:00:00至1999-12-30 23:59:59之间的任何日期
  • month3包括1999-12-31 00:00:00至2000-12-30 23:59:59之间的任何日期

你在评论中说你有1998年1月到2001年12月的数据。这个数据跨越四年,你有三年的分区(差不多,因为你的界限已经过了一天);所以从2001年,或者实际上从2000年到12月31日,数据无处可去。这就是错误告诉你的。

从第一个要求看,您需要一个区间范围分区表,其中每个分区包含三个月;不是三个分区,每个分区必须覆盖16个月以适应所有数据。或者16个固定分区,每个分区三个月 - 间隔范围稍后会更灵活,但您的导师可能期望固定分区。