Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Oracle分区表:数据未插入到正确的分区中_Database_Oracle11g - Fatal编程技术网

Database Oracle分区表:数据未插入到正确的分区中

Database Oracle分区表:数据未插入到正确的分区中,database,oracle11g,Database,Oracle11g,Halo数据库专家,来自印度尼西亚的问候语 我目前正在将我公司的一个大表从非分区迁移到分区表。每次我尝试使用insert into journal 1 select*from journal插入数据时,插入到journal 1的数据都没有分区。有什么线索吗 下面是作为数据源的非分区表 CREATE TABLE PRODBMDB.JOURNAL ( ID VARCHAR2(32 BYTE) NOT NULL, GATEWAYID

Halo数据库专家,来自印度尼西亚的问候语

我目前正在将我公司的一个大表从非分区迁移到分区表。每次我尝试使用insert into journal 1 select*from journal插入数据时,插入到journal 1的数据都没有分区。有什么线索吗

下面是作为数据源的非分区表

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中的数据时,数据插入成功,但没有分区。有人知道为什么会发生这种情况吗?

DBA\u TABLES.NUM\u ROWS是收集优化器统计信息时统计的行数。它不一定表示实际行数。不管 插入到表中的内容,在收集统计数据之前,查询将如下所示:

select partition_name, num_rows
from dba_tab_partitions
where table_name = 'JOURNAL1';

PARTITION_NAME  NUM_ROWS
--------------  --------
PART1   
PART2   
PART3   
PART4   
PART5   
收集统计信息将设置行数,但该行数不会保持最新:

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

你说的“没有分区”是什么意思?你是说数据都进入了同一个分区,不管分区键是什么?我通过TOAD软件查看了这个表,当我看到numorrows列中的分区详细信息时,它们都没有分区,我的意思是所有numorrows在所有分区中都是空的。数据存在,分区键与分区列值匹配。谢谢@jonearles。我用不同的分区键一遍又一遍地创建分区表,以找出任何线索。这真的很有帮助。