使用 SQL 访问企业级地理数据库数据

可以使用数据库管理系统的原生 SQL 从企业级地理数据库中的表和要素类(统称为数据集)读取数据。还可以使用 SQL 对存储在企业级地理数据库中的简单数据集插入、删除和更新值。

注注:

请勿使用 SQL 更改存储在企业级地理数据库中的数据集方案。

对地理数据库数据集执行 SQL 时,也是在基表(或业务表)中查询数据。如果所查询的数据集满足以下条件,则查询基表就足以查询到数据,并且可以使用 SQL 在基表中更新数据、插入记录或删除记录:

以下部分介绍数据集不满足这些条件时应采取的操作。

数据集参与地理数据库功能

如果要访问的数据参与了地理数据库功能,您所构造的查询必须包含所需的关联表,然后使用正确的列将这些表连接起来以便查询关联表中的信息。

可使用 Is_Simple 函数确定数据集是否参与地理数据库功能。如果 Is_Simple 返回 False,则可对数据集执行 SQL SELECT 语句,但请勿使用 SQL 编辑数据集。

数据集已注册为版本

如果数据集已注册为版本,可使用版本化视图查询该数据集并查看基表、添加表和删除表中的数据,而无需编写复杂的连接语句。在 ArcGIS 10.1 和更高版本中,在将数据集注册为版本时创建版本化视图。对于在 ArcGIS 10.1 之前版本化的数据集或在无权创建视图时版本化的数据集,可通过 ArcGIS for Desktop 中的表或要素类快捷菜单将此类数据集用于 SQL 访问,从而创建一个版本化视图。

如果要使用 SQL 编辑版本化数据集,必须通过版本化视图进行编辑。这会将编辑内容写入添加表和删除表,并在插入记录时填充 ObjectID 字段。

可以使用 Is_Versioned 函数确定是否将数据集注册为版本。如果注册为版本,使用 Version_View_Name 函数可确定版本化视图的名称。

数据集未注册为版本但已用于存档

如果数据集未注册为版本但已用于存档,启用存档时将创建存档视图。

如果要使用 SQL 编辑已启用存档的非版本化数据集,必须通过存档视图进行编辑。这样做会自动更新在更新要素或记录时追踪的字段以及 ObjectID 字段。

提示提示:

如果在启用存档时无权创建视图,当被授予在数据库中创建视图的权限后,可通过 ArcGIS for Desktop 中的表或要素类快捷菜单启用 SQL 访问(从而创建存档视图)。

如果 Is_Versioned 函数返回 False,使用 Is_Archive_Enabled 函数确定是否将非版本化数据集用于存档。如果将其用于存档,使用 Archive_View_Name 函数可确定存档视图的名称,并可使用该名称通过 SQL 编辑数据集。

数据集包含二进制几何或 ArcSDE XML 列

如果要访问的数据使用二进制几何存储或 ArcSDE XML,您所构造的查询必须包含所需的关联表,然后使用正确的列将这些表连接起来以便查询关联表中的信息。

请勿使用 SQL 编辑包含二进制几何存储或 ArcSDE XML 数据类型列的数据集。

相关主题

5/25/2014