首页 文章

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

提问于
浏览
0
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进行分区:

  • 创建一个包含三个月分区的表part_sales_tab_mv

  • 注册物化视图以使用预构建表 . 此物化视图必须符合查询重写的条件

1 回答

  • 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个固定分区,每个三个月 - 一个间隔范围稍后会更灵活,但您的导师可能期望固定分区 .

相关问题