操作方法

操作方法:将 Oracle Workspace Manager 和企业级地理数据库配合使用

Last Published: November 23, 2022

摘要

本文中提供的说明介绍了使用 Oracle 版本控制的常规工作流。

本文的目的是演示如何使用 Oracle 版本控制(而非使用企业级地理数据库版本控制)以及如何在 ArcGIS Desktop (ArcMap) 中编辑和检查数据更改。

注: 在地理数据库要素类上使用 Oracle Workspace Manager 仍然存在一些限制,例如无法从 ArcCatalog 中预览数据更改。 即使使用 ArcMap,也需要第三方附加 DLL 以直接从 ArcMap 中执行 SQL,以便在 ArcMap 会话内切换工作空间。
注: ArcSDE 软件(包括应用程序服务器、命令工具以及带有 C 和 Java API 的 SDK)在 ArcGIS 10.2.2 中已弃用,不再进行分发。 ArcGIS 软件功能已弃用,但是不会立即将其移除,以便为客户提供向后兼容性,并且尽可能多地提前通知以采用更新的技术。

过程

ArcMap 和 Oracle SQL*Plus 可用于以下工作流:

  1. 从以下链接下载并注册 ArcMap 脚本工具“ExecuteSQL”。 安装后,可以在 ArcMap 会话中运行 SQL 命令。 用于 ArcMap 的 ExecuteSQL 命令
  2. 使用 SQL*Plus 在维护历史记录的表上启用版本控制:
SQL> EXEC dbms_wm.EnableVersioning(table_name => 'TEST_SDO', hist => 'VIEW_WO_OVERWRITE');
  1. 使用 SQL*Plus 创建测试工作空间。
SQL> EXEC dbms_wm.createWorkspace('LOGON_TEST');
注: Oracle Workspace 类似于地理数据库中的版本。 会话上下文的默认工作空间称为 LIVE。
  1. 在 ArcMap 中打开一个直接连接/3 层连接,然后添加 TEST_SDO 图层。
  2. 编辑器 > 选项下,取消选中用于编辑具有撤消和重做功能的数据库版本的选项,以便针对基表直接写入编辑内容,然后开始进行编辑。
  3. 执行 SQL 窗口中切换至该工作空间。
begin dbms_wm.gotoWorkspace('LOGON_TEST'); end;
  1. 在 ArcMap 中打开属性表,并更新一个属性列,例如,更新列“APP_NO”以将一个特定要素 (objectid=21569) 的值设置为“123”。
  2. 保存编辑内容,然后选择编辑器 > 停止编辑。
  3. 在 SQL*Plus 中,运行以下代码:
SQL> select app_no from test_sdo where objectid=21569; APP_NO --------------------
  1. 在 SQL*Plus 中,切换至正确的工作空间。
SQL> EXEC dbms_wm.gotoWorkspace('LOGON_TEST');
  1. 再次运行该查询并观察更改。
SQL> select app_no from test_sdo where objectid=21569; APP_NO -------------------- 123
  1. 返回 ArcMap,再次开始进行编辑,删除一个要素 (objectid=21986) 并创建两个新要素 (objectid=22030,22031)。 停止编辑并保存编辑内容。
  2. 运行以下查询,以在 SQL*Plus 中针对相同工作空间再次对更改进行检查。
SQL> select count(*) from test_sdo where objectid>22029; COUNT(*) ---------- 2 SQL> select count(*) from test_sdo where objectid=21986; COUNT(*) ---------- 0
  1. 返回 ArcMap,将工作空间更改回默认工作空间,然后刷新 ArcMap 会话。 以上更改将不再可见;在其他工作空间(版本)中进行了这些更改。
begin dbms_wm.gotoWorkspace('LIVE'); end;

文章 ID:000011459

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容