ORA-00942:table or view does not exist
產生原因:這是由於裝載的表或視圖不存在,多半是CATEXP.SQL還沒有運行,無法執行Export視圖,如果CATEXP.SQL已經運行,則可能是版本錯誤。
解決方案:因為Import和Export共用的一些視圖是通過運行CATEXP.SQL來裝載的(它們具有相同的視圖),並不產生單獨的CATEXP.SQL,因而造成視圖與Export代碼不同步,較難保持彼此之間的相容,使用者就必須建立自己的Export應用,從而避免ORA-00942的錯誤。
相應的英文如下:
Cause:The table or view entered does not exist,a synonym that is jnot allowed here was used,or a view was referenced where a table is required.Existing user tables and views can be listed by querying the data dictionary.Certain privileges may required to access the table.If an application returned this message,the table the application tried to access does not exist in the database,or the application does not have access to it.
Action:Check each of the following:
The spelling of the table or view name.
That a view is not specified where a table is required
That an existing table or view name exists.
Contact the database administrator if the table needs to be created or if user or application priviledes are required to access the table.
Also, if attempting to access a table or view in another schema,make certain thecorrect schema is referenced and that access to the object is granted.
ORA-01598:rollback segment “name” is not online
Cause:The rollback segment was taken offline either manually or by SMON.
Action:Check the status of the rollback segment in DBA_ROLLBACK_SEGS.
ORA-1636: rollback segment “name” is already online
Cause:A rollback segment can only be used by one instance and an instance is trying to bring a rollback segment online that is already in use.
Action:Check that the values set in the initialization parameter file for parameters ROLLBACK_SEGMENTS,ROLLBACK_SEGMENT_INITIAL,and ROLLBACK_SEGMENT_COUNT are correctly set for the instance
whiththe problem,Also check that the instance is using the correct initialization parameter file.Make sure you are not confused about the difference between private and public rollback segments.See the Oracle8 Server Administrator's Guide for more information about using rollback segments in paraller mode.
上述錯誤均為我們在使用復原段時比較常見的問題,ORA-01598指明當前使用的復原段的狀態為“not online”,不能使用,將它改為“online”狀態即可使用;ORA-01636指明當前復原段已經為“online”狀態,可以直接使用,不用再集合它。
ORA-1636
signalled during: alter rollback segment rb00 online
我們在做統計時還可能遇到下述問題:一個rollback segment的狀態為”Needs Recovery”的現象,這是由於ORACLE回退一個事物表中的沒有提交的事物時失敗所造成的。通常原因為一個datafile或者tablespace是在offline的狀態或者一個undo的目標被破壞或者rollback segment被破壞。解決的辦法是將所有的tablespace和datafile都置為online狀態,如果不能解決則做下面的工作:1>.在initsid.ora中加入event=”10015 trace name context forever lever 10”;2>.shutdown資料庫然後重啟;3>.在$ORACLE_HOME/rdbms/log下,找到startup時產生的trace file;4>.在trace檔案中,找到下列資訊“error recovery tx(#,#) object #”;5>.根據object#(與sys.dba_objects表中的object_id相同)在sys.dba_objects表中查出該object的名字;6>.將該object drop掉;7>.在init.ora檔案中將該rollback segment放回rollback_segments參數中,刪除event;8>.shutdown資料庫然後重啟。此時”Needs Recovery”的問題應該是完全解決了,否則就是rollback segment被破壞了。
ORA-01688:unable to extend table name.name partition NAME by NUM in tablespace NAME
產生原因:
指定的tablespace空間已經被佔用滿,無法擴充。
解決方案:使用“ALTER TABLESPACE ADD DATAFILE”命令增加檔案系統檔案和原始分區,或者增加INITIAL的大小(如:alter tablespace CDRS101 default storage(next 500M pctincrease 1))應該能夠解決,否則就是有人使用你的資料表空間上建立了一個比較大的資料檔案導致你的資料表空間不夠用。
一個報錯例子如下:
ORA-1688: unable to extend table RMMCDR.LOCAL_CDR partition LOCAL_CDR101 by 460800 in tablespace CDRS101
相應的英文如下:
Cause:An extent could not be allocated for a table segment in tablespace
Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace