Halo database guru, greeting from Indonesia
i am currently working to migrate one my company big table from non-partition to partition table. each time i tried to insert the data using insert into journal1 select * from journal, the data inserted into journal1 is not partitioned. any clues ?
here is the non-partition table as the source of the data.
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;
here is the partitioned table's script. the target of the migration.
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;
here is the script i used to migrate the data
insert into journal1
select * from journal
when i check the data in table journal1, the data inserted successfully but did not partition. anyone have clues why is this happen?
DBA_TABLES.NUM_ROWS is the number of rows counted when optimizer statistics were gathered. It does not necessarily represent the real number of rows. Regardless of what is inserted in the table, until statistics are gathered the query will look like this:
select partition_name, num_rows
from dba_tab_partitions
where table_name = 'JOURNAL1';
PARTITION_NAME NUM_ROWS
-------------- --------
PART1
PART2
PART3
PART4
PART5
Gathering statistics will set the number of rows but the number will not stay up-to-date:
begin
dbms_stats.gather_table_stats('PRODBMDB', 'JOURNAL1');
end;
/
select partition_name, num_rows
from dba_tab_partitions
where table_name = 'JOURNAL1';
PARTITION_NAME NUM_ROWS
-------------- --------
PART1 0
PART2 0
PART3 0
PART4 0
PART5 0
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.