ArcGIS创建要素提示表已经被注册(Table already registered)

环境说明:

服务端:Centos6.7  Oracle11gR2 RAC集群     已经注册企业级数据库

本机:WIN10   ArcGIS10.1

问题描述:

因为原来的表空间创建错误(路径指定错误),需要将表空间数据清空后,删除表空间并重建,重建后无法导入或者新建原有数据,提示表已经存在错误,具体错误信息如下:

Table already registered [Error executing stored procedure sde.registry_util.insert_registration:ORA-20218:Registration 14158 already exists.]

QQ截图20210122151834

问题解决:

因为空间数据会在在SDE下注册相应,怀疑是注册信息因为某些情况未删除导致的,解决思路是清除一下相应图层在SDE下的相关注册信息。

1、SDE自带清理的方法,按照道理是最安全的,可以使用【sdetable -o unregister -t tablename】命令进行清理表的注册信息。但是sdetable命令需要安装ArcSDE软件(10.1之后都是是使用直连的方式,很少安装SDE软件了,只要创建一个企业级数据库即可),数据库是RAC集群的,而且也没有在linux rac下安装SDE的经验,担心会对数据库有所影响,所以没有使用此种方式。

2、手动清理

根据表名和用户在SDE下找到所有涉及到该要素集注册信息的表。我初步找到以下几张表

TABLE_REGISTRY

LAYERS

GEOMETRY_COLUMNS

COLUMN_REGISTRY

为了安全考虑,没有使用直接删除表中要素注册信息的方法,而是采用手动修改名称的方式(修改注册要素的名称),修改过程做好记录,以便于出现问题恢复。

按照表采用从上往下的顺序修改,修改一张表测试一次,比较奇怪的是,我只是修改了TABLE_REGISTRY,然后LAYERS表中的要素注册信息就查询不到了,难道是有所关联?至今为搞清楚,修改后尝试进行数据创建和拷贝,均正常,问题解决。

GEOMETRY_COLUMNS和COLUMN_REGISTRY表的内容也没有修改。后续会持续跟踪使用情况,评估是否有其他的影响。

image

参考:

https://support.esri.com/en/technical-article/000006563

https://blog.csdn.net/qq_15696177/article/details/79141872

posted on 2021-01-22 16:31  jingkunliu  阅读(971)  评论(0编辑  收藏  举报

导航