问题
最近支持一个用户,在SDE中创建要素类(Polygon FeatureClass)的时候提示了下面这个问题:
根据提示是要素类已经存在,不能再创建相同的要素类。查看了下SDE,没有相同名称的要素类。后来据反馈,之前是通过SQL语句在Oracle中直接删除了该要素类。
解决方法
初步判断是由于没有删除干净导致,背后的原因是SDE给每一个要素类都注册了一个唯一ID(REGISTRATION_ID ),这个ID是存储在SDE.TABLE_REGISTRY中,这个ID是由SDE自主维护。
要解决这个问题,可以通过SDE的sdetable命令来解除该要素类的注册,命令如下:
sdetable -o unregister -t tablename
但是需要注意的是要使用SDE命令,必须得先安装ArcGIS SDE软件。从10.2以后,ArcGIS SDE就不再提供ArcGIS SDE软件,推荐使用直连的方式。安装了软件,意味着你可以使用服务的方式去连接SDE空间库。所以,我们可以安装ArcGIS SDE10.2软件,然后再用sdetable命令来解除要素类的注册。
解除了之后,就可以正常创建要素类了。
最后,特别提醒不要随便通过SQL去删除要素类!不要随便通过SQL去删除要素类!不要随便通过SQL去删除要素类!重要的事说三次。