案例學習Oracle錯誤:ORA-01631
2024-08-29 13:34:48
供稿:網友
 
               案例一:  向表中插入新的記錄時出錯  我創建了如下的表空間:  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.