- 问题描述
一个用户有空间表也有属性表,用SQL语句删除了整个用户及表空间,重新创建把属性表dmp 导入进去, 再把空间要素集导入的时候报错说:table already registered
- 问题分析
按照报的错想了一下可能是之前用ArcMap 粘贴要素时sde把对应的表名称、字段名称、路径等信息记录到sde中的表里,因为删除的时候用动态SQL语句把用户删了, 但空间数据对应的sde中的注册信息没有被删除。 -
解决方法
看了一下sde 用户下面的几个元素注册相关的表,发现之前删过的用户确实有注册的空间表注册信息:
image.png
因此把对应的记录删掉,再重新粘贴空间数据就可以:
delete from sde.ST_GEOMETRY_INDEX where owner='testUser';
delete from GEOMETRY_COLUMNS where f_table_schema = 'testUser';
delete from LAYERS where owner='testUser';
delete from TABLE_REGISTRY where owner='testUser';
delete from column_registry where owner='testUser';
delete from GDB_ITEMS t where t.physicalname like 'testUser%'