开发环境
名称 | 版本 |
---|---|
操作系统 | Windows 10 X64 |
Oracle | win64_11gR2_database |
PLSQL Developer | 11.0.4.1788(64 bit)01.179332 - Unlimited user license |
问题描述
系统里有一个功能,导入 Excel,替换原有数据表的数据。
由于一条条的 insert
效率很低,所以使用了 BulkCopy
来添加数据。
但是在添加数据时,报下面的错误
第 '30' 行第 '1' 列中存在错误
ORA-26026: 唯一的索引 TPSDATA.UK_VERSION_REGISTRATION_NO 最初处于无法使用的状态
BulkCopy 相关代码
相关表结构
导致异常的数据
问题分析
1.唯一索引失效了;
2.表中已有重复记录;
3.因为 2 的原因, 唯一索引重建不了。
其实有重复的记录原因在于可能进行了频繁操作,导致 DataTable
中数据重复,而 BulkCopy
操作把数据加进去,下次再加数据进去的时候,就报错了。
问题解决
目前没有办法解决 BulkCopy
破坏索引的办法,所以解决办法在于再 BulkCopy
数据前,检查数据是否重复,如果重复,就不让 BulkCopy
。
测试结果
暂无