1、如果是在兩個表聯合查詢更新表字段值時發生「ora-01410: 無效的 rowid」錯誤,
那麼本站之前有討論過它的解決方法,詳見
2、如果僅僅是查詢時發生「ora-01410: 無效的 rowid」錯誤,那麼很可能是表的索引壞掉了,
可以先把錶結構拿出來分析一下,定位到是哪個表的哪個索引有問題。
大家都知道,索引是通過儲存rowid值來快速定位記錄,如果一些什麼原因造成這種對應關係出現錯誤,
那麼根據索引裡面的rowid無法找到對應的記錄,就會出現「ora-01410: 無效的 rowid」的錯誤。對於索引有問題的情況,下面的方法供參考:
1) 首先考慮能不能重新整理一下索引,找到索引名,並執行命令「alter index index_name rebuild」。
2) 如果經過第一步,還是沒有好,那麼可以考慮將索引刪除 ,重建索引。
3) 將表轉移到另外乙個表空間,命令為「alter table table_name move tablespace tablespace_name;」。
4) 如果上面的3個方法都沒能解決,可以嘗試下面的命令:
exec dbms_stats.gather_database_stats();exec dbms_stats.gather_system_stats();
exec dbms_stats.gather_fixed_objects_stats();
exec dbms_stats.gather_dictionary_stats();
exec dbms_stats.gather_database_stats_job_proc();
3、如果是在create table tablename as select * from…的時候發生」ora-01410: 無效的 rowid」錯誤,建議先讓dba許可權使用者執行「alter system checkpoint」試試。
rowid是表記錄在資料檔案中儲存的實體地址,是不會變更的,「無效的 rowid」即沒辦法找到相應的記錄,
我們多想想資料庫是怎樣工作的,它會怎麼執行我們的語句,問題就變得比較一目了然了。
》詳見:
ORA 01843 無效的月份
今天開發ssh專案,遇到 ora 01843 無效的月份 這個問題。起初還有一系列問題,最後經過排查,確認是這個問題導致插入資料庫失敗。網上找了一些文章,無法解決。最後仔細檢查欄位的時候發現用myeclipse生成的類檔案欄位和資料庫中字段不一樣 資料庫中字段類是timestamp,但通過myecl...
ORA 01843 無效的月份
在plsql developer中執行select months between 29 mar 2008 28 feb 2008 from dual報錯。sql select months between 29 mar 2008 28 feb 2008 from dual select months...
ORA 22859 無效的列修改
修改表字段資料型別時問題 ora 22859 無效的列修改 有乙個表test1有欄位a b,其資料型別分別是clob varchar2 10 alter table test1 modify a varchar2 255 clob 修改為 varchar2 error 位於第一行 ora 22859...