ArcSDE导入空间数据时出现ORA-00001错误的解决办法

ArcSDE导入空间数据时出现错误"Underlying DBMS error (ORA-00001: Unique contraint (SDE.GDB_OC_PKC) violated)" 的解决办法 ---转载

出现这个错误是因为oracle序列R3产生的值在表gdb_objectclasses中已经有记录造成的。解决办法是进入sqlplus或用PL/SQL Developer链接oracle.
(1)
执行SQL
SELECT MAX(id) FROM gdb_objectclasses
找出id的最大值。例如执行结果是
MAX(ID)
---------------
55
(2)
执行SQL

SELECT registration_id FROM table_registry WHERE table_name = 'GDB_OBJECTCLASSES'

找到表'GDB_OBJECTCLASSES'注册ID
如执行结果是
--------------
3
3)执行SQL
SELECT last_number FROM user_sequences WHERE sequence_name = 'R3'
找出序列R3的下一个值,如果第二步中的执行结果是4则这里是R4。例如执行结果是:
LAST_NUMBER
---------------
50
4) 从上面的查询结果中可以看出,序列R3的下一个值是50,而表gdb_objectclasses中小于55的值都已经被占用了。所以就会出现异常 Unique contraint (SDE.GDB_OC_PKC) violated。解决办法是不断增加序列R3的值,使其大于55,执行下面的SQL语句6次就可以了。
SELECT R3.NEXTVAL from dual

或者:

declare

    l_number number;

  begin

     for i in 1..6 loop

       SELECT R3.NEXTVAL into  l_number from dual;

     end loop;

end;

 

(5)SDE中,选中sde连接后点鼠标右键,选择refresh。然后就可以再导数据了。注意这一步一定要进行!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8720638/viewspace-269206/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8720638/viewspace-269206/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值