ArcGIS 创建要素时提示“表已经被注册(table already registered)”

今天一位实施大哥在ArcCatalog中要重建一个要素类,所以就在ArcCatalog中连接上Oracle数据库,直接删除了要素类,然后重新创建了一个新的要素类,可是却报错“表已经被创建”,并提示不可以在‘sde_table_registry‘表中插入重复的键值,记得以前碰到过这种状态,删除的不彻底,虽然将数据库中的数据表删除了,可以在sde用户下的元数据表中的记录没有被清除,导致再次创建时报错。

既然如此,就到元数据表中将相关的信息删除掉好了,所以就到sde用户下删除了table_registry表中的相关记录,再次新建要素,这次又报出了一个错误,“图层已存在[Error executing stored procedure <schema>.layer_util.insert_layer::ORA-20019: Layer 4681 already exists.]”,看样子是还有图层信息没有清除干净,这就头疼了,虽然提示了存储过程,但也不知道图层信息保存在哪张表里面… 而且在下懒鬼也没有去看存储过程的具体内容,直接google之

几番查找之后,找到了sde自带的取消表注册的命令:

  • sdetable -o unregister -t tablename

执行之,再创建要素,果然就好使了,看样子,手动删除还是有些不靠谱啊

后找到sde文档查看了一下这个命令的说明,具体如下:

Remove a table from the ArcSDE table registry

Use unregister to remove a table from the TABLE_REGISTRY table (SDE_table_registry in SQL Server databases).

sdetable -o unregister -t av.world -u av -p mo -i 7654

NOTE: Tables cannot be unregistered if they have been registered as multiversioned, are part of a geodatabase object, or have a spatial column. In all cases, the dependencies must be removed first or you must use the -F option.

To manually remove the dependencies, unregister the table from the geodatabase using ArcCatalog (if it has been registered with the geodatabase) and remove the spatial column (if it has one) using the sdelayer -o delete operation.

Alternatively, you can use the -F option to force the unregistering of the table. However, when you do so, all edits stored in the delta tables are lost. The table will not be unregistered with the geodatabase.

来自 <http://help.arcgis.com/en/geodatabase/10.0/admin_cmds/Support_files/datamgmt/sdetable.htm#xunregister>

大体就是说使用unregister可以从table_registry(在SQL Server中叫做SDE_table_registry)表中删除一个表记录,但是被删除表如果已经被注册为多版本,或是一个地理数据库对象的一部分,或是有一个空间列,则不能被取消注册,在任何情况下都应该先删除这些依赖关系才能再取消注册,或者也可以使用-F选项。大概是这么个意思,不过具体需要怎么取消依赖,毕竟笔者对ArcGIS不熟悉,也不甚了解。

不过从上面来看,unregister操作应该不仅仅只是删除了table_registry表中的记录那么简单,估计还有一些其他表的依赖需要处理,否则开始直接删除table_registry表中的记录也不会仍不能新建同样的要素类了,看样子,以后还是不要乱动sde的元数据表比较好,应该尽量选择使用sde提供的命令行工具。

时间: 2024-10-21 14:31:13

ArcGIS 创建要素时提示“表已经被注册(table already registered)”的相关文章

NuGet在创建pack时提示”The replacement token &#39;author&#39; has no value“问题解决

在创建pack时出现了“The replacement token 'author' has no value”的错误提示. 解决方法: 1.可能程序没生成过,在解决方案上重新生成解决方案,注意Debug和Release版本都生成一次,再重新运行pack的命令进行打包. 2.如果上面还不能解决,可以尝试此命令,指定参数:nuget pack myproject.csproj -IncludeReferencedProjects -Prop Configuration=Release 痛过以上方法

用SQL server导出到oracle,查询时提示“表或视图不存在ORA-00942”错误

用SQL server2005的导出工具,将数据导出表到oracle,表名称里看到有这张表了,但查询或删除时都提示“ORA-00942表或者试图不存在”的错误,上网查了一下,是如下原因: “查询或删除名称存在的表时,却提示不存在,你看看在user_tables里这几个表名是小写吗? 那说明你建表的时候肯定带引号了,请select的时候也带上引号.例如:select * from "tableName",可以看出如果在SQLserver中,如果表名是小写的,那导入到oracle时,建表时

ArcGIS创建要素类

在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用ArcMap中ARCCatalog窗口进行创建.总之需要用到ARCCatalog这个数据管理工具:这里我们直接启动ArcMap: 2.在ArcCatalog窗口文件连接中展开到你需要创建的位置的文件夹,右键单击选择新建——文件地理数据库,创建完成可进行重命名: 3.选择你创建好的文件地理数据,右键单击

使用kettle创建连接时提示Driver class not found

使用kettle工具时,创建连接时提Driver class 'com.ibm.db2.jcc.DB2Driver' could not be found 解决:把db2驱动jar包放在data-integration\lib下,重启工具就ok

Eclipse创建Maven时提示错误could not resolve archetype

今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured repositories 这个问题网上主要是两个解决方案: 1.是修改setting.xml文件 详情请见:http://www.cnblogs.com/dingyingsi/p/3616802.html 2.是添加新的Catalog配置 详情请见:http://blog.csdn.net/afga

AE二次开发中几个功能速成归纳(符号设计器、创建要素、图形编辑、属性表编辑、缓冲区分析)

/* * 实习课上讲进阶功能所用文档,因为赶时间从网上抄抄改改,凑合能用,记录一下以备个人后用. * * ------------------------------------------------------------------- * * 使用前提:已搭建好AE的GIS基本框架,包括TOC.mapcontrol.toolbar拖控件,mxd.shp文件载入显示,查看图层属性表等 * * --------------------------------------------------

sqlserver通过设计器修改表结构保存时提示:保存到文本问题

在sqlserver通过设计器修改表结构后保存时提示:保存到文本问题,这个问题可能通过修改设置项解决 工具>选项>设计器>   在弹出的窗口是把"阻止保存要求重新创建表的更改"选项的勾去掉,确定,保存,下次再修改就不会出现保存到文本问题了.

创建转弯要素时无法捕捉到网络边

今天看完网络数据集分析的资料后,试着操作过程中遇到的问题. 问题:在“创建完转弯要素类”后,编辑“转弯要素”时,总是提示“第一个点无法捕捉到网络边”,但是明明已经开启了边捕捉 在查看帮助文档的时候遇到一个需要注意的点: 转弯要素会引用边元素,但是边元素仅在构建网络数据集以后出现:因此,必须在创建转弯要素之前构建网络数据集. 最后,还是查看数据框的坐标系才发现,数据框坐标系和数据的坐标系不一样,改一下数据框坐标系就好了. 个人想法:数据框坐标系会影响捕捉.“ 说明:以上都是个人对GIS软件的粗欠认

oracle 11g rac dbca建库时提示创建监听

Oracle 11g rac dbca建库时提示创建监听 在安装oracle 11g rac时,使用dbca建库的过程中提示需要创建监听: Default Listener "LISTENER" is not configured in Grid Infrantructure home.Use NetCA to configure Default Listener and return DBCA 解决步骤如下 因为oracle 11g rac在安装过程中会自动创建监听,无需手动创建,首