arcgis中出现无法识别arcgis objectidd字段怎么办

ArcGIS操作指导_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ArcGIS操作指导
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢3456人阅读
用户典型问题(98)
ST_Geometry(30)
现在大家很喜欢使用ArcSDE的SQL操作,这种方式在特殊的环境要求下显得比较方便,那么使用SQL操作最多的是读和写,而写最多的就是新建一个对象,那么翻译成SQL语言就是使用insert方式比较多,那么问题出来了,大家都知道ArcGIS的每一个要素类都是有ObjectID的,而且这个字段是不能重复的,那么当我要插入一个新的对象,这个ObjectID值怎么获得呢?
如果对ArcSDE或者是数据库比较熟悉的话,可能会将要素类(数据库层次就是表),表对象的序列找出来,其实ObjectID走的也是一个序列,然后获得nextValue即可,这种方式是不严谨的。
下一个可用对象 ID 不一定是最后所插入对象 ID 之后的下一个顺序编号。某些客户端应用程序的对象 ID 会进行批量分配,因此下一个可用对象 ID 的编号可能比最后使用的对象 ID 大许多。同样,批中任何未使用的对象 ID 会返回可用值池中,这意味着下一个可用对象 ID 值可能实际上小于最后插入的对象
ID 值。
那么我们该使用什么方式呢?
使用 sde.version_user_ddl 包中的 next_row_id 函数为对象 ID 生成新的唯一值。&
next_row_id 函数使用两个参数:所有者和注册 ID。所有者是拥有该表的用户的名称。注册 ID 来自 TABLE_REGISTRY ArcSDE 系统表。利用表的所有者名称和注册 ID,可创建 SQL 语句来填充对象 ID 列。
操作步骤:
1:连接到Sqlplus
2:找到操作对象要素类对应的注册ID
SELECT registration_id FROM sde.table_registry WHERE table_name = 'STREAMS' and owner = 'ENG2';
REGISTRATION_ID
3:进行操作
INSERT INTO eng2.streams (OBJECTID,NAME,SHAPE) VALUES(sde.version_user_ddl.next_row_id('ENG2', 131),
'TRANQUIL', sde.ST_GEOMETRY('linestring (750 150, 750 750)', 4) );
PS:如果用户需要GUID,也可以使用version_user_ddl.retrieve_guid函数进行创建
INSERT INTO mytable_vw (globalid,shape)
(sde.version_user_ddl.retrieve_guid,(sde.st_polygon
('polygon ((, 000,
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1465998次
积分:18372
积分:18372
排名:第301名
原创:341篇
评论:858条
(1)(6)(14)(14)(4)(4)(5)(5)(5)(8)(4)(7)(9)(3)(2)(6)(6)(5)(2)(7)(5)(5)(7)(6)(7)(6)(10)(8)(12)(10)(12)(7)(6)(7)(5)(5)(10)(7)(12)(4)(9)(7)(8)(9)(13)(4)(10)(8)(19)(8)(8)(5)【图文】ARCgis数据检查和拓扑处理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
ARCgis数据检查和拓扑处理
上传于||暂无简介
大小:707.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 arcgis字段计算器函数 的文章

 

随机推荐