案例学习Oracle错误:ORA-01631

案例学习Oracle错误:ORA-01631

  案例一:

  向表中插入新的记录时出错

  我创建了如下的表空间:

  CREATE TABLESPACE TBS DATAFILE 'C:....XXX01.dbf' SIZE 500M REUSE

  DEFAULT STORAGE (INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 256

  PCTINCREASE 0) ONLINE;

  当我想要向表ST I中插入一条新的记录时,出现了如下的错误信息:

  ORA-01631:达到表TOM.ST的最大扩展(256)

  原因:一个表格尝试扩展此前定义的最大扩展

  解决方案:如果此前定义的最大扩展小雨系统的最大值,则扩展;否则,下次需要重新建立更大的初始化值或者增加参数;

  我想要增加最大扩展:(user=system)

  ALTER TABLE TOM.ST STORAGE(MAXEXTENTS 500);

  但是我遇到了如下的错误:

  ERROR at line 1:

  ORA-25150: 不允许修改扩展参数

  还有,表空间TBS默认存储(最大扩展 500);

  原因:一个在表空间中的自动分配或者按照统一长度自动分配原则产生的一节相关的尝试将改变长度参数。

  解决方案:将命令行中相应的长度参数删去

  ERROR at line 1:

  ORA-25143: 默认的存储规则与分配策略不符

  原因:默认的存储子句正通过自动分配或者统一分配原则指明了一个表空间

  解决方案:忽略这个存储子句

  我如何解决这个错误?

  这个问题于2004年3月2日提出

  这个问题由Brian Peasland解答

  你的表空间是一个本地管理的表空间(LMT)。本地管理的表空间不使用最大扩展,这就是为什么你收到ORA-25150 和 ORA-25143错误的原因。但是在惟一的一种情况下,你就不应该收到ORA-1631错误。试试用如下方式尝试创建一个不同的表空间:

  CREATE TABLESPACE TBS2 DATAFILE 'C:....XXX01.dbf' SIZE 500M REUSE

  EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

  然后将这个表用如下的语句移动到新的表空间去:

  ALTER TABLE TOM.ST MOVE TABLESPACE TBS2;

  你再也不会遇到这些错误消息了。
  Error inserting new record in table

  I created this tablespace:

  CREATE TABLESPACE TBS DATAFILE 'C:....XXX01.dbf' SIZE 500M REUSE

  DEFAULT STORAGE (INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 256

  PCTINCREASE 0) ONLINE;

  When I try to insert a new record in table ST I get this error:

  ORA-01631:maxextents(256) reached in table TOM.ST

  ORA-01631 max # extents (string) reached in table string.string

  Cause A table tried to extend past MAXEXTENTS.

  Action If MAXEXTENTS is less than the system maximum, raise it. Otherwise, you must re-create with larger initial, next or PCTINCREASE parameters.

  ORA-01631 max # extents (string) reached in table string.string

  Cause A table tried to extend past MAXEXTENTS.

  Action If MAXEXTENTS is less than the system maximum, raise it. Otherwise, you must re-create with larger initial, next or PCTINCREASE parameters.

  I tried to increase maxextents: (user=system)

  but I get this error:

  ERROR at line 1:

  ORA-25150: ALTERING of extent parameters not permitted

  ORA-25150 ALTERING of extent parameters not permitted

  Cause An attempt was made to alter the extent parameters for a segment in a tablespace with autoallocate or uniform extent allocation policy.

  Action Remove the appropriate extent parameters from the command.

  ORA-25150 ALTERING of extent parameters not permitted

  Cause An attempt was made to alter the extent parameters for a segment in a tablespace with autoallocate or uniform extent allocation policy.

  Action Remove the appropriate extent parameters from the command.

  also

  alter tablespace TBS default storage (maxextents 500);

  ERROR at line 1:

  ORA-25143: default storage clause is not compatible with allocation policy

  ORA-25143 default storage clause is not compatible with allocation policy

  Cause Default storage clause was specified for a tablespace with AUTOALLOCATE or UNIFORM policy.

  Action Omit the storage clause.

  ORA-25143 default storage clause is not compatible with allocation policy

  Cause Default storage clause was specified for a tablespace with AUTOALLOCATE or UNIFORM policy.

  Action Omit the storage clause.