操作方法
此处提供的说明描述了如何使用 Oracle 中的 SQL 语句生成建议的协调顺序。 查询的输出结果指示了在执行压缩操作之前,各版本与 sde.DEFAULT 版本进行协调的先后顺序。 通过按照查询结果所指示的顺序协调版本,可以通过压缩命令将版本化类的增量表中尽可能多的行移动到基表。
使用 SQL 方法的效果与使用 ArcObjects 界面 IVersionedWorkspace2::RecommendedReconcileOrder 获取版本名称枚举的效果相同。
为了获取建议协调顺序的版本列表,需要创建全局临时表和存储过程,并执行相应的 SQL 语句。
Note:
The steps should be performed by the sde administrative user in SQL*Plus.
SQL> DROP TABLE version_order;
DROP TABLE version_order
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> CREATE GLOBAL TEMPORARY TABLE version_order (
2 owner VARCHAR2(32),
3 name VARCHAR2(64),
4 state_id NUMBER(38),
5 ca_state_id NUMBER(38))
6 ON COMMIT PRESERVE ROWS;
Table created.
CREATE OR REPLACE PROCEDURE common_ancestor_exe AS
CURSOR ver_list IS
SELECT name, owner, state_id
FROM sde.versions
WHERE name <> 'DEFAULT'
AND name NOT LIKE 'SYNC_%'
AND name NOT LIKE 'REP_CO_SYNC_%'
ORDER BY state_id;
default_id NUMBER;
default_lin NUMBER;
source_lin NUMBER;
common_ancestor_id NUMBER;
BEGIN
SELECT state_id, lineage_name INTO default_id, default_lin FROM sde.states WHERE state_id =
(SELECT state_id FROM sde.versions WHERE name = 'DEFAULT' AND owner = 'SDE');
DELETE FROM version_order;
FOR ver_info IN ver_list LOOP
SELECT lineage_name INTO source_lin FROM sde.states WHERE state_id = ver_info.state_id;
SELECT MAX(lineage_id) INTO common_ancestor_id FROM
(SELECT lineage_id FROM sde.state_lineages WHERE lineage_name = default_lin AND lineage_id <= default_id
INTERSECT
SELECT lineage_id FROM sde.state_lineages WHERE lineage_name = source_lin AND lineage_id <= ver_info.state_id);
IF common_ancestor_id < default_id THEN
INSERT INTO version_order VALUES (ver_info.owner, ver_info.name, ver_info.state_id, common_ancestor_id);
END IF;
END LOOP;
COMMIT;
END;
/
EXEC sde.common_ancestor_exe;
PL/SQL procedure successfully completed.
SQL> SELECT owner, name
2 FROM version_order
3 ORDER BY ca_state_id, state_id;
OWNER NAME
------------ --------------
RANDY REV_6847258
CHRIS REV_7019237
CLARE REV_7069544
LUCY REV_7043793
SUSAN REV_7069206
接下来,应在 ArcGIS 中将这些版本与 DEFAULT 版本进行协调。 每协调一个版本,就会有更多行从增量表移动到基表。
文章 ID: 000010376
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序