今天想把一张190G的大表,转成分区表。且按月自动分区
再导入过程中报错了:
ORA-02354: error in exporting/importing data
ORA-14400: inserted partition key does not map to any partition
Processing object type TABLE_EXPORT/TABLE/COMMENT
怀疑是有非法值于是确认下
SQL> alter table L2_DM_FACT_***_OLD modify CALENDAR_DATE not null
2 /
alter table L2_DM_FACT_DBBHFP_OLD modify CALENDAR_DATE not null
*
ERROR at line 1:
ORA-02296: cannot enable (EDW.) - null values found
果然如此,那么交给研发先去处理这些空值吧。
附上按月创建分区表的脚本:
/* Formatted on 9/20/2017 5:28:29 PM (QP5 v5.300) */
CREATE TABLE L2_DM_FACT_DBBHFP_NEW
(
"CALENDAR_DATE" DATE,
"STORE_ID" VARCHAR2 (32 CHAR),
"QTY_SAL" NUMBER (28, 7),
"QTYIN" NUMBER (28, 7),
"QTYOUT" NUMBER (28, 7),
"PRODUCT_ID" VARCHAR2 (180 CHAR),
"COLOR_CODE" VARCHAR2 (255 CHAR),
"PC_ID" VARCHAR2 (435 CHAR)
)
PARTITION BY RANGE
(CALENDAR_DATE)
INTERVAL ( NUMTOYMINTERVAL (1, 'month') )
(PARTITION p_month_1
VALUES LESS THAN (TO_DATE ('2000-01-01', 'yyyy-mm-dd')))
导入的数据泵脚本也分享下:
impdp edw/*** directory=dump_dir dumpfile=hdp.dmp remap_table=t1:t1_NEW table_exists_action=append
注意remap_table的用法,和table_exists_action的用法
append是不修改表的元数据,但是追加表数据。