晕数据库大师,来自印度尼西亚的Oracle分区表:数据是不正确的分区插入
问候我目前正在迁移一个我公司的大表从非分区的分区表。每次我试图插入数据插入到journal1 select * from journal时,插入到journal1中的数据不会被分区。任何线索?
这里是非分区表作为数据的来源。
CREATE TABLE PRODBMDB.JOURNAL
(
ID VARCHAR2(32 BYTE) NOT NULL,
GATEWAYID VARCHAR2(128 BYTE) DEFAULT NULL,
WORKSTATIONID VARCHAR2(128 BYTE),
MANDATORID NUMBER(19) DEFAULT NULL,
INSTITUTEID NUMBER(19) DEFAULT NULL,
SUBSIDIARYID NUMBER(19) DEFAULT NULL,
ACQUIRERID NUMBER(19) DEFAULT NULL,
DATETIME TIMESTAMP(6) NOT NULL,
SESSIONID VARCHAR2(32 BYTE),
AUTHORIZETSTAMP TIMESTAMP(6),
TRANSACTIONNUMBER NUMBER(19) NOT NULL,
TRANSACTIONSTEPNR NUMBER(19),
CLIENTTRXNUM NUMBER(19),
HOSTTRXNUM VARCHAR2(32 BYTE),
METHOD VARCHAR2(64 BYTE),
ACTIONTYPE NUMBER(38) NOT NULL,
ACTIONSUBTYPE NUMBER(38),
FRAUDRESULT NUMBER(38),
FRAUDSCORE NUMBER(38),
CUSTOMERID VARCHAR2(32 BYTE),
ROUTINGCODE VARCHAR2(50 BYTE),
ACCOUNTNUMBER VARCHAR2(50 BYTE),
CARDSEQUENCENUMBER VARCHAR2(2 BYTE),
AMOUNT NUMBER(19),
CURRENCYCODE CHAR(3 BYTE),
COMMANDSOURCE VARCHAR2(128 BYTE),
RESPONSECODE NUMBER(38),
EXTRESPONSECODE NUMBER(38),
CANCELREASON NUMBER(38),
DOCUMENTSTATE NUMBER(38),
ACCOUNTINGSTATE NUMBER(38),
CARDSTATE NUMBER(38),
HOSTSTATE NUMBER(38),
EISPH NUMBER(38),
PARTITION NUMBER(38),
CONFIDENTIALS VARCHAR2(1024 BYTE),
MEDVIEW NUMBER(38),
MINVIEW NUMBER(38),
LONGVIEW NUMBER(38),
DATA1 RAW(2000),
DATA2 RAW(2000),
DATA3 RAW(2000),
DATA4 RAW(2000),
DATA5 RAW(2000),
DATA6 RAW(2000)
)
TABLESPACE USERSBIG
PCTUSED 0
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT)
MONITORING;
CREATE INDEX PRODBMDB.JOURNAL1 ON PRODBMDB.JOURNAL
(DATETIME)
LOGGING
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX PRODBMDB.JOURNAL2 ON PRODBMDB.JOURNAL
(MANDATORID, INSTITUTEID, WORKSTATIONID)
LOGGING
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX PRODBMDB.JOURNAL3 ON PRODBMDB.JOURNAL
(SESSIONID, TRANSACTIONNUMBER)
LOGGING
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
这里是分区表的脚本。移民的目标。
CREATE TABLE PRODBMDB.JOURNAL1
(
ID VARCHAR2(32 BYTE) NOT NULL,
GATEWAYID VARCHAR2(128 BYTE) DEFAULT NULL,
WORKSTATIONID VARCHAR2(128 BYTE),
MANDATORID NUMBER(19) DEFAULT NULL,
INSTITUTEID NUMBER(19) DEFAULT NULL,
SUBSIDIARYID NUMBER(19) DEFAULT NULL,
ACQUIRERID NUMBER(19) DEFAULT NULL,
DATETIME TIMESTAMP(6) NOT NULL,
SESSIONID VARCHAR2(32 BYTE),
AUTHORIZETSTAMP TIMESTAMP(6),
TRANSACTIONNUMBER NUMBER(19) NOT NULL,
TRANSACTIONSTEPNR NUMBER(19),
CLIENTTRXNUM NUMBER(19),
HOSTTRXNUM VARCHAR2(32 BYTE),
METHOD VARCHAR2(64 BYTE),
ACTIONTYPE INTEGER NOT NULL,
ACTIONSUBTYPE INTEGER,
FRAUDRESULT INTEGER,
FRAUDSCORE INTEGER,
CUSTOMERID VARCHAR2(32 BYTE),
ROUTINGCODE VARCHAR2(50 BYTE),
ACCOUNTNUMBER VARCHAR2(50 BYTE),
CARDSEQUENCENUMBER VARCHAR2(2 BYTE),
AMOUNT NUMBER(19),
CURRENCYCODE CHAR(3 BYTE),
COMMANDSOURCE VARCHAR2(128 BYTE),
RESPONSECODE INTEGER,
EXTRESPONSECODE INTEGER,
CANCELREASON INTEGER,
DOCUMENTSTATE INTEGER,
ACCOUNTINGSTATE INTEGER,
CARDSTATE INTEGER,
HOSTSTATE INTEGER,
EISPH INTEGER,
PARTITION INTEGER,
CONFIDENTIALS VARCHAR2(1024 BYTE),
MEDVIEW INTEGER,
MINVIEW INTEGER,
LONGVIEW INTEGER,
DATA1 RAW(2000),
DATA2 RAW(2000),
DATA3 RAW(2000),
DATA4 RAW(2000),
DATA5 RAW(2000),
DATA6 RAW(2000)
)
TABLESPACE USERSBIG
PCTUSED 0
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
)
LOGGING
PARTITION BY LIST (ACTIONTYPE)
(
PARTITION PART1 VALUES (1)
LOGGING
NOCOMPRESS
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
),
PARTITION PART2 VALUES (2)
LOGGING
NOCOMPRESS
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
),
PARTITION PART3 VALUES (3)
LOGGING
NOCOMPRESS
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
),
PARTITION PART4 VALUES (5)
LOGGING
NOCOMPRESS
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
),
PARTITION PART5 VALUES (10)
LOGGING
NOCOMPRESS
TABLESPACE USERSBIG
PCTFREE 10
INITRANS 10
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
)
)
NOCOMPRESS
NOCACHE
PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT)
MONITORING;
这里是我用来将数据迁移
insert into journal1
select * from journal
当我检查的数据表journal1,成功插入数据,但没有分区的脚本。任何人都有线索为什么会发生这种情况?
你是什么意思的“没有分区”?你是说所有数据都进入同一分区,无论分区密钥如何? –
我通过TOAD软件查看了表格,当我在列numOfRows中看到分区详细信息时,它们都没有分区,我的意思是所有分区中的numOfRows都只是空白。数据存在并且分区键与分区列值匹配。 – user2200083