使用 SQL 访问地理数据库 (geodatabase) 数据
可以使用数据库管理系统 (DBMS) 的原生 SQL 中的 SELECT 语句从 ArcSDE 地理数据库中的数据集读取数据。
指定要在 SQL 语句中选择数据的表。例如,下面这个简单查询将从 flyway 要素类中的 name 和 sp_id 列返回信息:
SELECT name, sp_id FROM yousir.flyway;
查询要素类的同时,也是在基表(或业务表)中查询数据。如果所查询的要素类满足以下条件,则查询基表就足以查询到数据:
- 数据不参与地理数据库功能(如存档、注记、复制、网络、宗地结构、关系类、制图表达、逻辑示意图数据集、子类型、属性域、地形或拓扑)。
- 要素类尚未版本化。
- 要素类使用 SQL 空间类型进行几何存储。
- 使用原生 DBMS XML 列而不使用 ArcSDE XML 列。
如果要访问的数据参与了地理数据库功能,请使用二进制几何存储,或使用 ArcSDE XML,同时,您所构造的查询必须包含所需的相关表,然后使用正确的列将这些表连接起来以便查询相关表中的信息。
如果要素类已版本化,则为要素类创建多版本化视图然后执行查询操作。当数据集进行版本化时,对表进行的所有编辑将存储在相关的添加表和删除表(即增量表)中。多版本化视图是一种用于查询版本化数据集中的基表的机制,通过它,您可以在添加表和删除表中查看相关的值。通过多版本化视图,您可以使用安装在 ArcSDE 数据库中的函数和过程,以及 SQL 查询来查看指定数据集中的基表、添加表和删除表中的数据,而不用编写复杂的连接语句。
相关主题
7/10/2012