参考:https://www.cnblogs.com/lijiaman/p/9277149.html
1. 问题
C#代码使用OracleBulkCopy
时插入了相同主键的数据,导致索引失效。
SELECT index_name,index_type,tablespace_name,table_type,status
FROM user_indexes
WHERE index_name='PK_AM_ACCOUNT_PHOTO';
重建索引时,提示找到重复的关键字。
ALTER INDEX PK_AM_ACCOUNT_PHOTO REBUILD;
2. 分析过程
2.1. 报错问题原因
~]$ oerr ora 01502
01502, 00000, "index '%s.%s' or partition of such index is in unusable state"
// MERGE: 1489 RENUMBERED TO 1502
// *Cause: An attempt has been made to access an index or index partition
// that has been marked unusable by a direct load or by a DDL
// operation
// *Action: DROP the specified index, or REBUILD the specified index, or
// REBUILD the unusable index partition
2.2. 下列操作会导致索引失效
3. 解决方案
先删除该索引,再将重复的记录找到并删除,再重建该索引。
ALTER TABLE am_account_photo DROP CONSTRAINTS PK_AM_ACCOUNT_PHOTO;