ArcMap10.1修改要素属性字段

时间:2023-02-27 10:39:02

ArcMap10.1修改要素属性字段

问题描述:在ArcMap10.1中编辑要素属性表时,遇到输入字段值的长度超过字段最大长度时,ArcMap会抛出“基础DBMS错误[ORA-12899:value too large for column “SDE”.”A326”.”PRJNO”(actual:53, maximum:50)][SDE.HB_RedLand_A]”。如下图所示。

ArcMap10.1修改要素属性字段

问题的分析:用过Arcgis系列软件的人都知道,Arcgis中要素的字段一经创建,是不允许修改的。之所以不允许修改是因为,如果允许在后期修改字段的类型和长度,那么用到该字段的所有应用程序(二次开发的)以及基于该字段进行数据处理流程,都会有可能出现错误。Esri公司不允许对创建后的字段进行修改是有道理的。

问题的解决:那么如果用户发现之前创建的字段不能满足需要,必须得修改那个字段该如何做呢?创建一个新的字段并将原始字段中的值复制至新建字段是不错的选择。在实际项目中往往需要新创建的字段与原始字段的名称一致,这就需要创建一个临时字段将原始字段中的值存储下来,再将原始字段删除,最后新建与原始字段名称一致的字段并将临时字段中的值赋值给新建字段,具体做法如下:

(1)新建字段。

(1.1)在非编辑状态下,单击要素属性表左上侧按钮,选择“添加字段”打开字段创建对话框,如图所示。

ArcMap10.1修改要素属性字段

打开添加字段

(1.2)在“字段添加”编辑对话框中输入字段的名称、类型、长度,点击 “确定”完成字段创建。

ArcMap10.1修改要素属性字段

添加字段

(2)将原始字段值赋值给新建字段。

(2.1)在编辑状态下选中新建字段选择“字段选择器”打开“字段选择器”。

ArcMap10.1修改要素属性字段

打开字段计算器

(2.2)在“字段编辑器”中选择为当前字段赋值的字段,点击“确定”实现将原始字段值赋值给新建字段。

ArcMap10.1修改要素属性字段

字段计算器

ArcMap10.1修改要素属性字段

字段计算器赋值结果

关于在SDE中修改字段size

网上有人说在SDE库中修改对应要素表中对应字段,再在COLUMN_REGISTERY表中找到该字段对应的记录并修改,可以实现字段的修改,但本人经过尝试,发现采用这种方式修改字段后,其在arcMap中可以看见字段属性的长度变为修改后的长度,但是在添加数据时,仍旧会抛出字段长度不足的异常,说明这种方式修改字段未能达到目的。

ArcMap10.1修改要素属性字段

column_registery表中修改指定表中字段

ArcMap10.1修改要素属性字段

sde库中修改字段size结果