zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    测试
    mysql数据库 select语句全集
    Markdown文本的书写格式详解--有道云笔记
    mysql数据忘记库密码
    最新版mysql基本命令操作
    Python从入门到放弃
    第二阶段冲刺
    周总结15
    找水王
    用户体验评价
  • 原文地址:https://www.cnblogs.com/Jingkunliu/p/14314045.html
Copyright © 2011-2022 走看看