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

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

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

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

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

从默认版本中读取

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

读取默认版本的最新状态

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

读取特定版本状态

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

可以从 SQL 客户端直接执行 version_util.set_current_version。语法如下:

EXEC sde.version_util.set_current_version('<version_name>')

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

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

  2. 在 SQL 提示符处,执行 version_util.set_current_version 实用程序,将版本设置为默认版本。
    EXEC sde.version_util.set_current_version('DEFAULT')
    
  3. 对版本化视图发出 SELECT 语句以便从地理数据库中读取版本化数据。

    在本例中,版本化视图是 sightings_ev。

    SELECT ID, SPECIES, REPORTER
     FROM SIGHTINGS_EV
     WHERE REPORTER = 'CHUCK';
    

读取非默认版本

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

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

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

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

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

  2. 在 SQL 提示符处,执行 version_util.set_current_version 工具以设置要查询的版本。

    在本例中,将 FIELD_INSPECTIONS 设置为要在主 sde 地理数据库中查询的版本。如果针对用户方案地理数据库中的版本进行运行,此实用程序前将带有地理数据库所有者的名称。

    EXEC sde.version_util.set_current_version('FIELD_INSPECTIONS')
    
  3. 对版本化视图发出 SELECT 语句以便从地理数据库中读取版本化数据。

    在本例中,版本化视图是 code_ev。

    SELECT violationID,codenum,propowner,insp_date 
     FROM code_ev 
     WHERE zip = '99999';
    

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

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

相关主题

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

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

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

关于 Esri

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