ArcGIS中对于空间数据视图的管理

本文探讨了在ArcGIS中创建空间数据视图后,如何通过SQL查询在SDE用户下找不到视图的问题。通过比较普通要素类和视图的属性差异,指出视图在数据库中未被常规SQL查询到。解决方案是将视图注册到地理数据库,以便能够通过SQL进行查询。文章还提到了ArcGIS 10.5之前的版本不支持视图的限制,并提供了官方文档链接以供参考。
摘要由CSDN通过智能技术生成

        先来说说我遇到的问题,当我们创建了一个空间数据的视图之后,我们可以在ArcGIS中的数据库连接的展开树下面可以看到该目录树,并且可以使用。但是我们使用常用的SQL命令,无法在数据库中的SDE用户下查询到该节点。这里看看我的SQL。(同时使用二个SQL的查询结果,进行综合)

select t1.physicalname as fullname,t1.physicalname as aliasname,t1.path as path,decode(t2.name,'Feature Dataset','dataset',decode(t2.name,'Raster Catalog','rastercatalog',decode(t2.name,'Raster Dataset','rasterdataset',decode(t2.name,'Table','table',decode(datasetsubtype1,11,'anno',decode(datasetsubtype2,1,'point',decode(datasetsubtype2,3,'polyline',decode(datasetsubtype2,4,'polygon',decode(datasetsubtype2,2,'multipoint',decode(datasetsubtype2,9,'multipatch','')))))))))) as type,t1.datasetsubtype2 as geometrytype, t1.datasetsubtype1 as featuretype from sde.gdb_items t1, sde.gdb_itemtypes t2 where t1.type=t2.uuid and t2.name !='Table' and instr(upper(t1.physicalname), upper('数据库连接用户名'))=1 order by fullname
select t.table_name 表名,m.geometry_type 类型 from sde.layers t,sde.geometry_columns m where t.owner='数据库连接用户名' and m.f_table_schema=t.owner and m.f_table_name=t.table_name order by 表名

        使用这二句SQL命令我们可以查询到对应用户下的所有节点名称,但是这里值得注意的是,这里没有你创建的那个视图。我们看一下普通空间数据视图和空间数据在打开属性之后的差异。

创建的视图:

普通要素类的空间数据:

 这里可以看到普通要素类的属性和视图是不一样的,虽然在ArcGIS中都可以作为空间数据进行显示,并且这个视图的名称无法使用上面SQL在SDE用户下进行查询,这里值得我们使用注册到地理数据库功能,对数据进行注册既可以使用上面的SQL语句查询到了。

演示一下注册之后的属性:

 

我这里是灰色的,因为我这里的截图使用的是ArcGIS10.2版本的,这里注意的是在ArcGIS10.5版本以前是不支持视图的,这里我们可以看一下官方文档进行对比。官方连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值