解決Oracle11g中的索引名字亂碼問題

mengzhaoliang發表於2011-03-21

有一個主鍵對應的索引變成了亂碼。
如下:如果在SQLPLUS查詢:
SQL> select INDEX_NAME,INDEX_TYPE,TABLE_NAME,UNIQUENESS from user_indexes where
  2  table_name='OO_OMS_USER';
索引名居然有三行,並且為亂碼:
 XP@
 #@
 r..


解決:
不能和主鍵及關聯的索引一起刪除,資料庫識別不出來索引。
ALTER TABLE OO_OMS_USER drop  CONSTRAINT PK_employee_id drop  index
會報:Ora-02443 :無法刪除約束條件——不存在的約束條件。


下面嘗試先刪除主鍵名,這主鍵名有中文字元。
ALTER TABLE OO_OMS_USER drop  CONSTRAINT PK_人員資訊表

重新增加索引:
ALTER TABLE  OO_OMS_USER add  CONSTRAINT PK_employee_id  PRIMARY KEY (employee_id);

再刪除主鍵名:
ALTER TABLE OO_OMS_USER drop  CONSTRAINT PK_employee_id
再重建主鍵:
ALTER TABLE  OO_OMS_USER add  CONSTRAINT PK_comm_employee_id  PRIMARY KEY (employee_id);

查詢索引表,索引名字變成了與主鍵名一樣,亂碼消失:
select INDEX_NAME,INDEX_TYPE,TABLE_NAME,UNIQUENESS from user_indexes where
table_name='OO_OMS_USER'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-690073/,如需轉載,請註明出處,否則將追究法律責任。

相關文章