HOW TO

Melden der empfohlenen Abgleichreihenfolge mithilfe von SQL in Oracle

Last Published: October 11, 2024

Beschreibung

In den bereitgestellten Anweisungen wird beschrieben, wie die empfohlene Abgleichreihenfolge mithilfe von SQL in Oracle erstellt wird. Die Ausgabe der Abfrage ist die Reihenfolge, in der Versionen mit der "sde.Default-Version" vor dem Ausführen einer Komprimierung abgeglichen werden sollen. Durch den Abgleich der Versionen in der von der Abfrage zurückgegebenen Reihenfolge können mit dem Befehl "compress" so viele Zeilen wie nötig aus den Delta-Tabellen der einzelnen versionierten Klassen in die Basistabellen verschoben werden.

Die Verwendung des SQL-Ansatzes ist identisch mit der Verwendung der ArcObjects-Schnittstelle "IVersionedWorkspace2::RecommendedReconcileOrder" zum Abrufen einer Aufzählung von Versionsnamen.

Lösung oder Problemumgehung

Das Erstellen einer globalen temporären Tabelle und einer gespeicherten Prozedur sowie das Ausführen einer SQL-Anweisung ist erforderlich, um die Liste der Versionen in der empfohlenen Abgleichreihenfolge zurückzugeben.

Note:
The steps should be performed by the sde administrative user in SQL*Plus.
  1. Erstellen Sie die von der gespeicherten Prozedur verwendete globale temporäre Tabelle, um den Wert "state_id" jeder Version und den Wert "state_id" der gemeinsamen Vorfahren aufzuzeichnen.

    Löschen Sie die Tabelle "version_order", falls sie bereits vorhanden ist.
SQL> DROP TABLE version_order;
DROP TABLE version_order
*
ERROR at line 1:
ORA-00942: table or view does not exist
  1. Erstellen Sie die globale temporäre Tabelle.
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.
  1. Erstellen Sie die gespeicherte Prozedur "common_ancestor_exe".
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;
/
  1. Führen Sie die gespeicherte Prozedur aus, und fragen Sie die globale temporäre Tabelle zum Generieren der empfohlenen Abgleichreihenfolge ab.
EXEC sde.common_ancestor_exe;

PL/SQL procedure successfully completed.
  1. Führen Sie die folgende SQL-Anweisung aus, die den Besitzer und den Namen jeder Version basierend in der empfohlenen Abgleichreihenfolge zurückgibt.
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

Die Versionen müssen dann mit ArcGIS gegen die Default-Version abgeglichen werden. Für jede abgeglichene Version werden weitere Zeilen aus den Delta-Tabellen in die Basistabellen verschoben.

Artikel-ID: 000010376

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln