向ArcSDE导入数据出现(ORA-00001: Unique contraint (SDE.GDB_OC_PKC) violated错误

ArcSDE导入数据出现(ORA-00001:Unique contraint (SDE.GDB_OC_PKC) violated错误

 

    出现这个错误的原因很大程度上是因为误操作删除表空间、没有通过ArcGIS Desktop 删除featureclasstable导致被删除的图层在SDE系统表中留有残存信息,此时再向SDE中导入相同的数据表时就会出现ORA-00001: Unique contraint (SDE.GDB_OC_PKC) violated错误。

 

解决方法一

 

    在数据库中创建一个同名的数据表,然后在ArcCatalog下删除这个数据表,再向SDE里导入数据;如还报错,在向SDE导入数据前,先清理SDE系统表中残留的信息。

 

 

 

解决方法二

 

    oracle序列产生的值在表gdb_objectclasses中已经有记录造成的。解决办法是进入plus/sql或用PL/SQL Developer链接oracle.

 

1     执行语句

 

SELECT MAX(id) FROM gdb_objectclasses找出id的最大值例如执行结果是MAX(ID) 300

 

2执行语句,

 

SELECT registration_id FROM table_registry WHERE table_name = GDB_OBJECTCLASSES找到表GDB_OBJECTCLASSES注册ID,例如ID号为4

 

3)执行语句,

 

SELECT last_number FROM user_sequences WHERE sequence_name = ”R4“

 

找出序列R4的下一个值,如果第二步中的执行结果是5则这里是R5。例如执行结果是:LAST_NUMBER =128

 

4)从上面的查询结果中可以看出,序列R4的下一个值是128,而表gdb_objectclasses中小于300的值都已经被占用了。所以就会出现异常Unique contraint (SDE.GDB_OC_PKC) violated。解决办法是不断增加序列R4的值,使其大于300;接下来就是疯狂执行下面的SQL语句SELECT R3.NEXTVAL from dual 

 

5SDE中,选中sde连接后点鼠标右键,选择refresh。然后就可以再导数据了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值