ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ArcSDE导入空间数据时出现ORA-00001错误的解决办法

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

原创 Linux操作系统 作者:houdan522 时间:2008-05-15 15:32:59 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/8720638/viewspace-269206/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-16

  • 博文量
    16
  • 访问量
    19012