在測試環境刪除一個表的數據的時候,報了一個錯誤:ORA-01502: index 'IPSP.SYS_C0014818' or partition of such index is in unusable state,有些蒙圈,大概意思就是索引有問題。
然後我就用 SHOW INDEX FROM T_TABLE去查索引,結果自然是報無效語句錯誤,Oracle數據庫中,查詢索引語句如下:
SELECT * FROM user_indexes WHERE TABLE_NAME=upper('table_name')
好了,查出索引名以後,我們重建一下索引即可,語句如下:
ALTER INDEX SYS_C0014818 REBUILD // 查詢索引以後 重建索引
問題解決起來比較簡單,但是老是把Oracle和Mysql混起來,僅此做個記錄,以方便查閱:
1.查詢一張表裏面索引
SELECT * FROM user_indexes WHERE TABLE_NAME=upper('T_BILL')
2.查詢被索引字段
SELECT * FROM user_ind_columns WHERE INDEX_NAME=('SYS_C0014818')
3.給某一字段創建索引
CREATE INDEX in_bills ON bills(account_id)
4.查詢索引以後 重建索引
ALTER INDEX SYS_C0014818 REBUILD