ArcMap10.1无法保存编辑的内容
问题描述:在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无法保存编辑的内容的更多相关文章
- ArcGIS Add-in——自动保存编辑
需求:由于初次使用ArcGIS编辑器不习惯.数据量大造成经常程序未响应.计算机断电等因素,造成编辑的数据没有保存,影响了生产效率,本人根据草色静然的博文,总结了自动保存编辑的实现方法. 分析:自动保存 ...
- ubuntu上使用vim编辑文本内容
1. 什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.简单的来说, vi 是老式的字处理器,不过功能已经很齐全了, ...
- 关于 Notepad++ 崩溃之后正在编辑文件内容被清空的致命问题的补救措施
Notepad++ 以其功能强大.界面简洁.操作简单方便.超低内存耗用而受众多挨踢从业者青睐. Notepad++ 不像 UE 那样在你编辑的时候会定时生成 bak 备份文件.虽然 Notepad++ ...
- VIM中保存编辑的只读文件
如何在VIM中保存编辑的只读文件 你是否会和我一样经常碰到这样的情景:在VIM中编辑了一个系统配置文件,当需要保存时才发现当前的用户对该文件没有写入的权限.如果已 经做了很多修改,放弃保存的确很懊恼, ...
- Linux 使用vim命令编辑文件内容
在终端可以使用vim命令来直接编辑文件内容. vim,也可以叫做vi. vim有三种模式:命令模式.输入模式.底线命令模式. 命令模式 vim 文件名 进入命令模式,vim也可以写成vi. 如果 ...
- 将textField编辑完内容作为参数发送请求
将textField编辑完内容作为参数发送请求 首先赋值默认值 其次把编辑完的内容传给model,这样的话,model里面的数据就是编辑完之后的内容了
- ALV编辑行内容有改变时候操作
ALV编辑行内容时,调用方法 check_changed_data返回变量 gf_valid = 'X'的话说明alv行有变化. 以下拿alv维护表程序部分代码做例: DATA: gr_alvgrid ...
- windows平台下编辑的内容传到linux平台出现中文乱码的解决办法
现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码.如下: 在windows平台编写haha.txt文件,内容如下: 上传到linux平台,出现中文乱码,如下: 基本上面出现的 ...
- java实现在图片上编辑文本内容
package com.yin.text; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; impor ...
随机推荐
- 获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)
HWND hWnd = ::FindWindow(NULL, _T("XXXXX")); if(NULL == hWnd) { return ; } HWND hWndStatus ...
- C++:运算符重载函数之"++"、"--"、"[ ]"、"=="的应用
5.2.5 "++"和"--"的重载 对于前缀方式++ob,可以用运算符函数重载为: ob.operator++() //成员函数重载 或 operator++ ...
- OpenCV源码阅读(2)---matx.h---函数的内联实现
外部矩阵计算函数 namespace internal { template<typename _Tp, int m> struct Matx_DetOp { double operato ...
- php命令行用法简介
Php是一个非常流行的web服务端脚本语言.其实,php不仅仅可以在web服务器中充当重要角色.在命令行一样可以执行. 本文中,笔者为各位介绍下php在命令行中的使用方法. 1. 查看php的版本. ...
- apk反编译(8)如何完全防止反编译?
在android 的应用很难做到完全防止反编译,即使用ProGuard混淆的后,也能得到smali代码,这个语法也很简单,很容易理解. 只能通过增加破解难度和成本,使破解者失去耐心. 其中一个常见解决 ...
- Android开发之事件分发和Listener
参考:http://blog.csdn.net/zhongkejingwang/article/details/38141719 http://blog.csdn.net/zhongkejingwan ...
- 面试题_ Java EE 相关的面试题
为了做 Java EE 的朋友,这里列出了一些 web 开发的特定问题,你们可以用来准备 JEE 部分的面试: 10 大 Spring 框架面试题及答案(参见)10 个非常好的 XML 面试问题(Ja ...
- MyBatis 实践 -配置
MyBatis 实践 标签: Java与存储 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: pro ...
- Java 日期时间
Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...
- UVa 11181 (条件概率) Probability|Given
题意: 有n个人买东西,第i个人买东西的概率为Pi.已知最终有r个人买了东西,求每个人买东西的概率. 分析: 设事件E为r个人买了东西,事件Ei为第i个人买了东西.所求为P(Ei|E) = P(EiE ...