快速浏览:对企业级地理数据库使用 SQL
可以使用 SQL 访问现有数据集及其属性,并编辑企业级地理数据库中的版本化和非版本化数据集。
也可以使用 SQL 创建可注册到地理数据库的表。这些表可包含非空间属性和 SQL 空间或栅格类型。
使用 SQL 访问地理数据库时,会在数据库管理系统 (DBMS) 级别对其进行访问。这意味着使用 SQL 时,不会强制执行由 ArcGIS 强制执行的行为和功能。这也意味着,必须在将直连到数据库的计算机上安装并配置 DBMS 客户端。
使用 SQL 时,会访问数据库中的表。因此,对地理数据库中的数据执行 SQL 命令时,可以查看关于数据的数据和信息,但不应更改参与地理数据库行为的任何数据。有关详细信息,请参阅可使用 SQL 编辑何种数据类型?。
使用 SQL 访问数据集的属性
可以使用 SQL SELECT 语句获得 ArcSDE 地理数据库中的现有数据集的属性。
数据集属性存储在地理数据库系统表中。要获得此信息,可查询系统表中的特定列。某些情况下,这些列包含 XML 文档,使用 XPath 表达式查询这些文档可获得属性信息。对于存储在 IBM DB2、PostgreSQL 和 Microsoft SQL Server 数据库中的地理数据库也是如此。对于 Oracle 中的地理数据库,可访问系统视图来读取 CLOB 列中的纯文本。
使用 SQL 访问地理数据库 (geodatabase) 数据
可以使用 SQL SELECT 语句从地理数据库的现有数据集中返回数据。如果查询企业级地理数据库中的版本化数据集,则必须使用版本化视图。
版本化视图将数据库视图、存储过程、触发器和函数整合在一起,以用于通过 SQL 读取或编辑地理数据库表或要素类中的版本化数据。通过版本化视图访问版本化数据集时,业务表中的所有记录都被选中并与增量表中的记录合并,以构建包括在指定版本环境中对业务表进行的所有更改的视图。
要使用 SQL 访问和分析简单空间数据,可使用与空间类型一起安装的空间 SQL 函数。每个空间类型都有其自己的函数集。Esri 为其在 Oracle 和 PostgreSQL 中的 ST_Geometry 类型定义了函数,并且每个 DBMS 供应商都为其 SQL 类型定义了函数。这些函数可评估空间关系、执行空间运算,以及返回和设置空间属性。有关此功能的概述,请参阅空间关系、空间运算和几何属性。
使用 SQL 编辑地理数据库 (geodatabase) 数据
可使用 DBMS 对应的 SQL 来编辑地理数据库中的简单非空间属性数据。还可以使用与空间类型一起安装的空间 SQL 函数来更改使用 SQL 的简单空间数据。
可以使用 SQL 编辑企业级地理数据库中的版本化和非版本化数据集。但是,如前所述,不应编辑参与地理数据库功能的数据集。
编辑非版本化数据时,必须使用 SQL 向对象 ID 字段、GUID 字段和全局 ID 字段插入唯一值。
必须使用版本化视图来编辑版本化数据。通过版本化视图进行编辑时,版本化视图使用的触发器将更新增量表。这样可确保在编辑时对增量表进行了插入。版本化视图还会自动向对象 ID 字段插入唯一值。
使用 SQL 创建要用于 ArcGIS 的表
可使用 DBMS 的本机 SQL 来创建和填充表。使用 SQL 创建的空间和非空间表均可用于 ArcMap。可以通过创建查询图层来在 ArcMap 中渲染空间表。也可以直接在 ArcGIS 中查看空间表和非空间表中的属性。如果具有用于站点中的其他系统的表,并希望能够通过 ArcGIS 访问这些表或将这些表连接到自己的地理数据库中的表,则查询图层和直接访问表的功能均十分有用。
如果希望表使用地理数据库功能,可将表注册到地理数据库。但请记注,一旦表使用了地理数据库功能,便无法使用 SQL 编辑它们。
有关说明,请参阅工作流:使用 SQL 创建表并将表注册到地理数据库。