ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

使用版本化视图读取 Db2 中的版本化数据

  • 从默认版本中读取
  • 读取非默认版本

可以对版本化视图执行 SQL SELECT 语句以访问版本化数据。

注:

z 操作系统上的 IBM Db2 数据库中不支持版本化视图。

从默认版本中读取

运行 SQL 语句时有两种针对默认版本的选项:可读取最新状态或从您指定的版本状态读取。

读取默认版本的最新状态

版本化视图自动访问默认版本的当前状态。如果对版本化视图执行 SELECT 语句,它会在执行语句时访问默认版本的当前状态。如果其他用户正在提交对默认版本的编辑(从而更改默认版本引用的状态),您的后续查询将看到最新状态及其编辑。

读取特定版本状态

如果要查询默认版本的特定状态且不希望在查询时更改状态,请执行 setcurrentversion 存储过程。此过程将验证所提供的版本名称并在内部设置相应的数据库状态。如果要为默认版本执行 setcurrentversion,则执行 setcurrentversion 存储过程时,您针对默认版本所做的查询始终指向默认版本引用的状态。

从 SQL 客户端执行 setcurrentversion。语法如下:

CALL sde.setcurrentversion('<version_name>',?,?)

您可以根据需要再次执行此存储过程,以返回到版本表的当前状态。

  1. 确保有需要访问的版本化要素类或表的版本化视图。

    从 ArcGIS 10.1 开始,在版本化数据时创建版本化视图。如果您的数据注册为 10.1 之前的版本,则可通过在 ArcMap 的目录树中右键单击数据集,指向管理,然后单击启用 SQL 访问来创建版本化视图。

  2. 打开 SQL 客户端并调用 setcurrentversion 存储过程,将版本设置为默认版本。
    CALL sde.setcurrentversion('DEFAULT',?,?)
    

    问号表示消息代码输出和消息输出。消息代码输出和消息输出是执行该过程后返回的 SQL 代码和消息。在问号中传递后将返回代码和消息。

  3. 对版本化视图发出 SELECT 语句以便从地理数据库中读取版本化数据。

    在以下示例中,版本化视图是 sightings_ev:

    SELECT ID, SPECIES, REPORTER
     FROM SIGHTINGS_EV
     WHERE REPORTER = 'chuck'
    

读取非默认版本

您还可以执行 setcurrentversion 存储过程以查询非默认版本。此过程将验证您指定的版本名称并在内部设置相应的版本状态。执行 setcurrentversion 存储过程时,您对版本所做的查询始终指向引用版本的状态。

如果需要更改为其他版本,可以再次调用此过程。每当工作空间刷新时都可调用此过程,以便将版本化表的当前状态返回到调用应用程序。

以下步骤演示了如何运行 setcurrentversion 来查询默认版本以外的特定版本:

  1. 确保有需要访问的版本化要素类或表的版本化视图。

    注册版本化表、要素类或要素数据集时,将创建版本化视图。如果您的数据在版本 ArcGIS 10.1 之前进行了版本化处理,则可通过右键单击数据集,指向管理,然后单击启用 SQL 访问来创建版本化视图。

  2. 打开 SQL 客户端并调用 setcurrentversion 存储过程以设置要查询的版本。

    在以下示例中,将 field_inspections 设置为要查询的版本:

    CALL sde.setcurrentversion('FIELD_INSPECTIONS',?,?)
    

    问号表示消息代码输出和消息输出。消息代码输出和消息输出是执行该过程后返回的 SQL 代码和消息。在问号中传递后将返回代码和消息。

  3. 对版本化视图发出 SELECT 语句以便从地理数据库中读取版本化数据。

    在以下示例中,版本化视图是 code_ev:

    SELECT owner, site_address, region
    FROM code_ev
    WHERE region = 'b'
    

如果需要返回查询默认版本的当前状态,可执行 set_default 过程。

CALL sde.set_default;
可随后在版本化视图上运行 SELECT 语句,查询将针对默认版本的最新状态运行。

相关主题

  • 什么是版本化视图?
  • 使用 SQL 编辑 Db2 中的版本化数据

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明