无法通过存储过程将数据输入到生产中的Oracle表中

时间:2015-08-19 11:37:36

标签: database oracle tablespace

表的行数是671839.顺序是有序的。昨天已经对表进行了交易,就像它在过去7个月中进行的那样,即自上次应用程序部署以来。在过去7个月中,应用程序代码或数据库中没有任何更改,一切正常。在一些成功的交易之后突然间,插入从昨天中期开始就失败了!浏览器中没有错误消息。 我已导出整个数据库,但无法在cmd提示符中使用oracle导入脚本导入相关表。 显示以下错误:

  

IMP-00003:ORACLE错误1659遇到ORA-01659:无法分配   表空间USERS中超过8的MINEXTENTS

以下是表格的DDL

CREATE TABLE MDP.TBL_DAILY_DATA
(
  DAILY_DATA_ID        NUMBER(38),
  METER_ID             NUMBER(38),
  D_DATE               DATE,
  FREQUENCY_POWER_SUM  FLOAT(126),
  WH_REG_VALUE         FLOAT(126),
  VAR_REG_HIGH_VALUE   FLOAT(126),
  VAR_REG_LOW_VALUE    FLOAT(126),
  RECEIVED_DATE        DATE,
  DETAIL               SYS.XMLTYPE,
  DETAIL_TEXT          VARCHAR2(4000 BYTE),
  MWH_DETAIL               SYS.XMLTYPE,
  MWH_DETAIL_TEXT          VARCHAR2(4000 BYTE)
)
XMLTYPE DETAIL STORE AS CLOB (
  TABLESPACE USERS
  ENABLE       STORAGE IN ROW
  CHUNK       8192
  RETENTION
  NOCACHE
  LOGGING
  INDEX       (
        TABLESPACE USERS
        STORAGE    (
                    INITIAL          64K
                    NEXT             1M
                    MINEXTENTS       1
                    MAXEXTENTS       UNLIMITED
                    PCTINCREASE      0
                    BUFFER_POOL      DEFAULT
                   ))
      STORAGE    (
                  INITIAL          64K
                  NEXT             1M
                  MINEXTENTS       1
                  MAXEXTENTS       UNLIMITED
                  PCTINCREASE      0
                  BUFFER_POOL      DEFAULT
                 ))
TABLESPACE USERS
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          272M
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCOMPRESS 
NOCACHE
NOPARALLEL
MONITORING;


CREATE UNIQUE INDEX MDP.UK_TBL_DAILY_DATA ON MDP.TBL_DAILY_DATA
(METER_ID, D_DATE)
LOGGING
TABLESPACE USERS
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          3M
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;


ALTER TABLE MDP.TBL_DAILY_DATA ADD (
  PRIMARY KEY
  (DAILY_DATA_ID)
  USING INDEX
    TABLESPACE USERS
    PCTFREE    10
    INITRANS   2
    MAXTRANS   255
    STORAGE    (
                INITIAL          1M
                NEXT             1M
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
               ),
  CONSTRAINT UK_TBL_DAILY_DATA
  UNIQUE (METER_ID, D_DATE)
  USING INDEX MDP.UK_TBL_DAILY_DATA);

2 个答案:

答案 0 :(得分:3)

您的USERS表空间已满,找到表空间的数据文件

SELECT * FROM DBA_DATA_FILES WHERE tablespace_name = 'USERS';

完成此操作后,请扩展数据文件的maxsize(以下内容将其扩展为100g,但为您的环境选择合理的大小)

ALTER DATABASE DATAFILE '<filename>' MAXSIZE 100g;

答案 1 :(得分:2)

使用以下查询在您的桌面空间中找到免费的MB。

select b.tablespace_name, tbs_size SizeMb, a.free_space FreeMb
from  (select tablespace_name, round(sum(bytes)/1024/1024 ,2) as free_space
from dba_free_space
group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as tbs_size
from dba_data_files

       group by tablespace_name) b
where a.tablespace_name(+)=b.tablespace_name
and b.tablespace_name='USERS' ;

如果可用空间为零,则更改数据文件大小。 借助以下查询

找到您的数据文件名称
select *
from dba_data_files c where tablespace_name='USERS'

并改变数据文件的大小。