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