问题描述:在arcMap10.1中编辑SDE库中要素,保存编辑内容时报错:

无法保存编辑内容。基础DBMS错误[ORA-29877:failed in the execution of the ODCIINDEXUODATE routine

ORA-20085 Insert Spatial Reference SRID 300015 does not match SDE.REDLINERANG_A.SHAPE registered Spatial Reference SRID 300003

ORA-06512:at “SDE.ST_DOMAIN_METHODS”, line 1986

ORA-06512:at “SDE.ST_DOMAIN_METHODS”, line 2358

]

如下图所示:

ArcMap之所以报上述错误,是因为在SDE库中修改了要素的空间参考系,使之与在要素导入时创建要素集时指定的空间参考系不一致。进入SDE对应的Oracle数据库中可以看见存在表:ST_SPATIAL_REFERENCES、ST_GEOMETRY_COLUMNS、ST_GEOMETRY_INDEX,但是表ST_DOMAIN_METHODS却看不见,在ST_SPATIAL_REFERENCES表中存在记录SRID300003和300015,如下图所示。

起初以为只要将两条记录对应的字段修改一致即可,但是结果表明不行。接着考虑是不是在要输导入数据库时SDE基于用户导入的要素的空间参考系生创建了索引,而再次修改空间参考系之后,其索引没有更新导致的。于是,删除表ST_SPATIAL_REFERENCES对应的索引,重新创建与之同名、同类的索引,可是依然不行。

最后将表ST_GEOMETRY_COLUMNS和ST_GEOMETRY_INDEX中对应SRID为300003的记录统统删掉,本以为只要删除以后,SDE便不再去匹配空间参考系,可谁知仍然事与愿违。

在万般无奈之下,将对应的数据从SDE库中导出至shapefile中,重新创建要素集并指定正确的空间参考系,再将shapefile中的数据导入至新建数据集,问题终于得以解决,具体操作过程如下。

1要素导出

(1)    选中要导出地点要素,右击选择“导出”—>“转为shapefile(单个)”;

(2)    选择导出的位置,可创建一个filegdb用于保存导出的shapefile,并输入新的shapefile对应的文件名称,完毕后单击“确定”即开始要输导出操作。

(3)    要素导出成功后下方会出现“要素导出至要素”字样。

2新建要素集

(1)    在SDE库中新建要素集,选中当前数据库连接右击选择“新建”—>“要素数据集”

(2)    输入要素数据集名称

(3)    点击“下一步”,为要素集选择空间参考系。

(4)    点击“下一步”选择垂直空间参考系。(可以不指定)

3要素导入

(1)    选中目标要素集,右击选择“导入”—>“要素类(单个)”

(2)    选择要导入的要素,选择目标SDE库中对应的要素集,填写输出要素类名称,单击“确定”即开始要素导入操作。导入过程中ArcMap右下侧会出现“要素类至要素类”字样;导入成功后ArcMap右下侧会出现“√要素类至要素类”字样。

       要素重新导入之后,对其进行编辑,启动“要素编辑”后进行编辑,修改属性表中的字段值时,无法修改。出现这个问题的原因是,SDE中需要对要素注册版本(即允许多个用户同时对相同的要素进行编辑),若没有注册版本,则不允许对其进行编辑。

      具体表现为,双击待编辑的字段,没有反应。

对要素注册版本

(1) 选中要素所在要素集,右击选择“管理”—>“注册版本”,等待若干秒钟即可。

(2)要素注册版本之后,即可在ArcMap中对其进行编辑。

ArcMap10.1无法保存编辑的内容的更多相关文章

  1. ArcGIS Add-in——自动保存编辑

    需求:由于初次使用ArcGIS编辑器不习惯.数据量大造成经常程序未响应.计算机断电等因素,造成编辑的数据没有保存,影响了生产效率,本人根据草色静然的博文,总结了自动保存编辑的实现方法. 分析:自动保存 ...

  2. ubuntu上使用vim编辑文本内容

    1. 什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.简单的来说, vi 是老式的字处理器,不过功能已经很齐全了, ...

  3. 关于 Notepad++ 崩溃之后正在编辑文件内容被清空的致命问题的补救措施

    Notepad++ 以其功能强大.界面简洁.操作简单方便.超低内存耗用而受众多挨踢从业者青睐. Notepad++ 不像 UE 那样在你编辑的时候会定时生成 bak 备份文件.虽然 Notepad++ ...

  4. VIM中保存编辑的只读文件

    如何在VIM中保存编辑的只读文件 你是否会和我一样经常碰到这样的情景:在VIM中编辑了一个系统配置文件,当需要保存时才发现当前的用户对该文件没有写入的权限.如果已 经做了很多修改,放弃保存的确很懊恼, ...

  5. Linux 使用vim命令编辑文件内容

    在终端可以使用vim命令来直接编辑文件内容. vim,也可以叫做vi. vim有三种模式:命令模式.输入模式.底线命令模式. 命令模式 vim  文件名   进入命令模式,vim也可以写成vi. 如果 ...

  6. 将textField编辑完内容作为参数发送请求

    将textField编辑完内容作为参数发送请求  首先赋值默认值  其次把编辑完的内容传给model,这样的话,model里面的数据就是编辑完之后的内容了

  7. ALV编辑行内容有改变时候操作

    ALV编辑行内容时,调用方法 check_changed_data返回变量 gf_valid = 'X'的话说明alv行有变化. 以下拿alv维护表程序部分代码做例: DATA: gr_alvgrid ...

  8. windows平台下编辑的内容传到linux平台出现中文乱码的解决办法

    现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码.如下: 在windows平台编写haha.txt文件,内容如下: 上传到linux平台,出现中文乱码,如下: 基本上面出现的 ...

  9. java实现在图片上编辑文本内容

    package com.yin.text; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; impor ...

随机推荐

  1. (转)SSI开发环境搭建

    本文转自:http://blog.csdn.net/lifuxiangcaohui/article/details/7187869 先来点文字性的描述: MVC对于我们来说,已经不陌生了,它起源于20 ...

  2. C++ 打印输出指针

    大家想必在很多场景下需要打印输出指针地址.看一下下面的输出:       CObject* pObject = new CObject;     std::cout << pObject  ...

  3. NuGet学习笔记

    NuGet学习笔记(1)——初识NuGet及快速安装使用 NuGet学习笔记(2)——使用图形化界面打包自己的类库 NuGet学习笔记(3)——搭建属于自己的NuGet服务器

  4. 带你认识HTML5中的WebSocket

    这篇文章主要介绍了带你认识HTML5中的WebSocket,本文讲解了HTML5 中的 WebSocket API 是个什么东东.HTML5 中的 WebSocket API 的用法.带Socket. ...

  5. 1208. Legendary Teams Contest(dfs)

    1208 简单dfs 对于每个数 两种情况 取还是不取 #include <iostream> #include<cstdio> #include<cstring> ...

  6. 配置hibernate根据实体类自动建表功能

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码 Xml代码<propert ...

  7. 获取本机外网ip和内网ip

    获取本机外网ip //获取本机的公网IP public static string GetIP() { string tempip = ""; try { WebRequest r ...

  8. ASP.NET MVC Html.ActionLink使用说明

    本文整理了该方法的几种重载形式: 1.Html.ActionLink("linkText","actionName")该重载的第一个参数是该链接要显示的文字,第 ...

  9. jquery 滚动条插件 jquery.nanoscroller.js

    $(".listcontent .nano").nanoScroller();   $(".chatcontent .nano").nanoScroller({ ...

  10. listview默认选择第一项,点击换子项背景图

    (不是大神,没有几百子项目,去你丫的) private int last_item_position ; @Override public void onItemClick(AdapterView&l ...