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

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

注注:

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

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

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

可以从 SQL 客户端直接执行 setcurrentversion 过程。语法如下:

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

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

以下步骤演示了如何运行 setcurrentversion 来查询版本:

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

    从 ArcGIS 10.1 开始,在版本化数据时创建版本化视图。如果是 10.1 版本之前的版本化数据,可通过运行创建版本化视图地理处理工具来创建版本化视图。

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

    在本例中,将 version2 设置为要查询的版本。

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

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

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

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

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

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

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

相关主题

5/25/2014