使用版本化视图读取 Oracle 中的版本化数据
可以对版本化视图执行 SQL SELECT 语句以访问版本化数据。
版本化视图自动访问 DEFAULT 版本的当前状态。如果对版本化视图执行 SELECT 语句,它会访问 DEFAULT 版本的当前状态。如果其他用户正在提交对 DEFAULT 版本的编辑(从而更改 DEFAULT 版本引用的状态),您的后续查询将看到最新状态及其编辑。
如果要查询非 DEFAULT 版本,或不希望 DEFAULT 版本查询更改状态,那么可执行 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>')
如果需要更改为其他版本,可以再次调用此工具。每当工作空间刷新时都可调用此工具,以便将版本化表的当前状态返回到调用应用程序。
步骤:
-
确保有需要访问的版本化要素类或表的版本化视图。
从 ArcGIS 10.1 开始,在版本化数据时创建版本化视图。如果是 10.1 版本之前的版本化数据,可通过运行创建版本化视图地理处理工具来创建版本化视图。
-
在 SQL 提示符处,执行 version_util.set_current_version 工具以设置要查询的版本。
在本例中,将 version2 设置为要在主 sde 地理数据库中查询的版本。如果针对用户方案地理数据库中的版本进行运行,此工具前面将带有地理数据库所有者的名称。
EXEC sde.version_util.set_current_version('version2')
-
对版本化视图发出 SELECT 语句以便从地理数据库中读取版本化数据。
在本例中,版本化视图是 code_mv。
SELECT violationID,codenum,propowner,insp_date FROM code_mv WHERE zip = '99999';
如果需要返回查询 DEFAULT 版本的当前状态,可执行 set_default 过程。
EXEC sde.version_util.set_default();
相关主题
9/15/2013