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.]
问题解决:
因为空间数据会在在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表的内容也没有修改。后续会持续跟踪使用情况,评估是否有其他的影响。
参考:
posted on 2021-01-22 16:31 jingkunliu 阅读(1053) 评论(0) 编辑 收藏 举报