对 ArcSDE 地理数据库 (geodatabase) 使用 SQL 的快速浏览

可以使用 SQL 访问现有数据集及其属性,并编辑 ArcSDE 地理数据库中的版本化和非版本化数据集。

还可以使用 SQL 创建可注册到 ArcSDE 和地理数据库的表。这些表可以包含 SQL 空间或栅格类型,也可以只包含非空间属性。

使用 SQL 访问地理数据库时,会在数据库管理系统 (DBMS) 级别对其进行访问。这意味着使用 SQL 时,不会强制执行由 ArcSDE、地理数据库或 ArcGIS 客户端强制执行的行为和功能。

使用 SQL 时,会访问数据库中的表。因此,对地理数据库中的数据执行 SQL 命令时,可以查看关于数据的数据和信息,但不应更改参与地理数据库行为的任何数据。有关详细信息,请参阅可使用 SQL 编辑何种数据类型

此外,如果 DBMS 需要客户端访问数据库,则必须安装并配置 DBMS 客户端后才能直接连接到数据库。

使用 SQL 访问地理数据库 (geodatabase) 数据

可以使用 SQL SELECT 语句从地理数据库的现有数据集中返回数据。如果查询 ArcSDE 地理数据库中的版本化数据集,则必须使用多版本化视图。

多版本化视图将数据库视图、存储过序、触发器和函数整合在一起,用以通过结构化查询语言 (SQL) 访问地理数据库表中指定版本的数据。

通过多版本化视图访问版本化数据集时,业务表中的所有记录都被选中并与增量表中的记录合并,以构建包括在指定版本环境中对业务表进行的所有更改的视图。

要使用 SQL 访问和分析简单空间数据,可使用与空间类型一起安装的空间 SQL 函数。每个空间类型都有其自己的函数集。这些函数可评估空间关系、执行空间运算,以及返回和设置空间属性。有关此功能的概述,请参阅空间关系空间运算几何属性

使用 SQL 访问数据集的属性

可以使用 SQL SELECT 语句获得 ArcSDE 地理数据库中的现有数据集的属性。

数据集属性存储在地理数据库系统表中。要获得此信息,可查询系统表中的特定列。某些情况下,这些列包含 XML 文档,使用 XPath 表达式查询这些文档可获得属性信息。对于存储在 IBM DB2、PostgreSQL 和 Microsoft SQL Server 数据库中的地理数据库也是如此。对于 Oracle 中的地理数据库,可访问系统视图来读取 CLOB 列中的纯文本。

使用 SQL 编辑地理数据库 (geodatabase) 数据

可使用 DBMS 的本机 SQL 来编辑地理数据库中的简单非空间属性数据。还可以使用与空间类型一起安装的空间 SQL 函数来更改使用 SQL 的简单空间数据。

可以使用 SQL 编辑 ArcSDE 地理数据库中的版本化和非版本化数据集。但是,不应编辑参与地理数据库功能的数据集,如本主题前面所述。

编辑非版本化数据时,必须使用 SQL 向对象 ID 字段、GUID 字段和全局 ID 字段插入唯一值。

必须使用多版本化视图来编辑版本化数据。这样可确保在编辑时对增量表进行了插入。多版本化视图还会自动向对象 ID 字段插入唯一值。

使用 SQL 创建要用于 ArcGIS 的表

可使用 DBMS 的本机 SQL 来创建和填充表。使用 SQL 创建的空间和非空间表均可用于 ArcMap。可以通过创建查询图层来在 ArcMap 中渲染空间表。也可以直接在 ArcGIS 中查看空间表和非空间表中的属性。如果具有用于站点中的其他系统的表,并希望能够通过 ArcGIS 访问这些表或将这些表连接到自己的地理数据库中的表,则查询图层和直接访问表的功能均十分有用。

如果希望表使用地理数据库功能,可将表注册到 ArcSDE 和地理数据库。但请记注,一旦表使用了地理数据库功能,则无法使用 SQL 编辑它们。

有关说明,请参阅示例:将空间表注册到 ArcSDE示例:将图层注册到地理数据库工作流:使用 SQL 创建表并将表注册到 ArcSDE 和地理数据库

相关主题


7/10/2012