Error: ORA-00001: unique constraint (SDE.GDB_OC_UC) violated

文章编号 : 25813
软件: ArcGIS - ArcEditor 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 ArcGIS - ArcInfo 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 ArcSDE 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1
操作系统: Windows 2000, XP
已邀请:

EsriSupport

赞同来自:

错误信息:
当在ArcSDE geodatabase里创建新的feature class时,会出现如下的错误信息: “ORA-00001: unique constraint (SDE.GDB_OC_UC) violated”
原因:
当下面两项都成立的时候,上述的错误就会出现: 1 在ArcGIS Desktop中,使用在用户模式中原来创建的具有相同名字的table或feature class。 2 原始的table或feature class被ArcSDE 管理者使用命令'SDELAYER -o delete' or 'SDETABLE -o delete'删除掉。 在ArcGIS Desktop里创建新的表或feature class,在GDB_OBJECTCLASSES表里的行里会多添加一条记录。这个表存放在ArcSDE的元数据仓库里,被SDE user拥有。它有一个限制来保护新建的数据拥有相同的名字和用户。 ArcSDE管理者命令在对geodatabase的操作上具有优先权,但是没有管理ArcSDE元数据仓库的GDB_*tables的权限。所以当使用命令行删掉了在GDB_*tables中的任意一条记录,其实是没有删除的。 为了避免这种情况的发生,使用ArcCatalog删除任意的ArcSDE的对象,这个对象是在ArcGIS Desktop中创建的。

解决方法: 解决办法就是重新在RDBMS上创建一个和原来的表具有相同的名字,相同的内容,相同用户的表。这样就能清除在GDB_*tables中的原始表记录。
1 使用'SDETABLE -o create'管理者命令在ArcSDE里创建和原来的表或feature class具有相同的名字,用户,数据集的表。
sdetable -o create -t <name of original table> -d "test string(10)" -s <server name> -i <service name or ArcSDE port #> -u <owner name> -p <password>
2 在ArcCatalog里连接上新表。
3 在表上单击右键,选择“Delete”。
4 这样就可以创建和原始的表拥有一样名字的表了。


创建时间:2003-10-01
最近更新: 2010-06-17


原文链接
http://support.esrichina.com.cn/2003/1001/907.html

要回复问题请先登录注册