Oracle 中地理数据库 (geodatabase) 内的密钥集表

在以下情况下将使用密钥集表来存储一组所选的行:ArcGIS Desktop 客户端执行使用整型、数值型、日期型或字符串型属性来连接表的地理数据库关系查询。

正如有关 Oracle 的 ArcSDE 日志文件表配置选项中所述,日志文件表存储所选要素的 OBJECTID。密钥集表用于保存使用 OBJECTID 以外的属性的连接。

当数据库查询中的源选择集超过 99 行时,将在每次会话中为每个连接创建一个密钥集表。

ArcGIS Desktop 中的密钥集表

ArcGIS Desktop 中无法显示密钥集表。但是,以下操作可创建和填充密钥集表:在 ArcMap 中从某个关系类所涉及的要素类中选择超过 99 条记录,然后打开属性表,并使用“选项”菜单中的“关联表”列表检索相关表。启动编辑会话时也会创建密钥集表。

Oracle 数据库中的密钥集表

只有发生以下两种情况之一时,地理数据库中才会出现密钥集表:

当具有 CREATE TABLE 权限的用户创建密钥集表时,此密钥集表将创建在该用户的方案中。如果用户不具备 CREATE TABLE 权限,则将在 ArcSDE 管理员的方案中执行创建密钥集表的流程。对于在 ArcGIS Desktop 中进行限定选择而创建的密钥集表,该密钥集表在创建的同时还会填充。开始编辑会话时会创建密钥集表,但在做出限定选择前不会进行填充。用户断开与数据库的连接时,密钥集表即被删除。

密钥集表名称的格式如下所示:

<user_schema>.keyset_<process_id>

密钥集表将存储每个选择集的密钥集 ID 号以及确定要素类间关系时所依据的字段的值。

以下是在相关表 LATERALS 与 CONTRACTORS 之间执行选择时创建的密钥集表。在本例中,将对 LONG_VAL 字段进行填充,该字段包含 LATERALS 与 CONTRACTORS 之间的关系类所依据的 CONTRACTOR_ID 字段的值。

Oracle 中的密钥集表及其关联业务表

<user_schema>.keyset_<process_id>

以下是 Oracle 中密钥集表的定义

字段名

字段类型

描述

是否允许为空

KEYSET_ID

NUMBER(38)

密钥集选择内容的标识符

非空

LONG_VAL

NUMBER

关系类所依据的字段的值,前提是该字段为数值字段

STR_VAL

NVARCHAR2(256)

关系类所依据的字段的值,前提是该字段为字符串字段

DBL_VAL

DOUBLE

关系类所依据的字段的值,前提是该字段为双精度字段

DATE_VAL

DATE

关系类所依据的字段的值,前提是该字段为日期字段

XML 文档中的密钥集表

密钥集表是一种临时表,因而不存储在 XML 文档中。

相关主题


7/10/2012