ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Daten verwalten
  • Werkzeuge
  • Erweiterungen

Bearbeiten von versionierten Daten in Db2 mit SQL

  • Bearbeiten der Default-Version
  • Bearbeiten einer benannten Version
  • Wechseln vom Bearbeiten einer benannten Version zurück zur Default-Version
  • Abgleichen der Änderungen an der versionierten Version und Zurückschreiben dieser
Komplexität:
Einsteiger
Erforderliche Daten:
Eigene Daten verwenden

Um mit SQL als versioniert registrierte (traditionelle) Daten zu bearbeiten, müssen Sie eine versionierte Sicht verwenden. Sie können die Default-Version oder eine benannte Version über eine versionierte Sicht bearbeiten. Unter Überblick über das Bearbeiten von versionierten Daten mit SQL finden Sie eine Beschreibung dieser Optionen.

In den meisten Fällen verwenden Sie nur ein Bearbeitungsmodell. Es ist jedoch möglich, beide auf derselben Site zu verwenden. Daher wird in diesem Workflow erklärt, wie beide Modelle verwendet werden, damit Sie wissen, wie Sie zwischen beiden wechseln können. Wenn Sie nur ein Modell verwenden, lesen Sie den Abschnitt zum Bearbeitungsmodell, das Sie verwenden möchten.

Hinweis:

Versionierte Sichten werden in Db2-Datenbanken auf z/OS-Betriebssystemen nicht unterstützt.

Bearbeiten der Default-Version

Sie können SQL verwenden, um eine Verbindung mit der Default-Version herzustellen und eine versionierte Sicht zu bearbeiten. Sie müssen keine Editiersitzung öffnen. Wenn Sie mit dem Bearbeiten beginnen, wird automatisch eine Verbindung mit dem aktuellen Status der Default-Version hergestellt.

Sie sollten nach jeder vorgenommenen Bearbeitung einen Commit durchführen, um zu vermeiden, dass andere Benutzer daran gehindert werden, auf die Delta-Tabellen der Tabelle oder Feature-Class zuzugreifen.

In den folgenden Schritten wird eine versionierte Sicht (blic_evw) bearbeitet. Bearbeitungen dieser Sicht werden in die Delta-Tabellen der versionierten Tabelle "blic" geschrieben. Da es sich nur um zwei Bearbeitungen handelt, werden diese in der Default-Version vorgenommen.

  1. Stellen Sie von einem SQL-Client eine Verbindung mit der Datenbank her. Stellen Sie sicher, als Benutzer mit Berechtigungen zum Bearbeiten des Datasets und der versionierten Sicht eine Verbindung herzustellen.
  2. Nehmen Sie die erste Änderung an der versionierten Sicht mithilfe von SQL vor.

    In diesem Beispiel wird eine vorhandene Zeile aktualisiert, um den Namen des Eigentümers der Eigenschaft zu ändern.

    UPDATE blic_evw 
    SET propowner = 'C. O. Industry' 
    WHERE lic = 44977;
    
  3. Speichern Sie die Änderung mit einem Commit.
    COMMIT;
    
  4. Nehmen Sie die nächste Bearbeitung vor.

    Der Tabelle wird über die versionierte Sicht ein neuer Datensatz hinzugefügt.

    INSERT INTO blic_evw (propowner, date_entered, location) VALUES (  'Moe Esposito',   CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125662 0.0046711)', 12));
    

    Tipp:

    In der INSERT-Anweisung ist kein ObjectID-Wert angegeben. Die versionierte Sicht ruft automatisch die nächste verfügbare ObjectID ab und fügt sie für die Zeile ein.

  5. Speichern Sie die Änderung mit einem Commit.
    COMMIT;
    

Bearbeiten einer benannten Version

Ihnen werden mehrere Aktualisierungen für die Feature-Class "blic" zugewiesen. Daher beschließen Sie, dass es günstig wäre, die Bearbeitungen in einer benannten Version vorzunehmen.

Die gespeicherten Prozeduren und die Syntax für das Bearbeiten einer benannten Version der Geodatabase lauten wie folgt:

Gespeicherte ProzedurZweckSyntax und Beschreibung

sde.create_version

Erstellen einer benannten Geodatabase-Version.

Wenn Sie benannte Versionen (andere Versionen als Default) bearbeiten, bearbeiten Sie immer eine eigene, separate Version. Mehrere Editoren können nicht die gleiche benannte Version mit versionierten Sichten bearbeiten.

CALL sde.create_version ('<parent_version>', '<child_version>', <name_rule>, <access>, '<description>', <message_code_output>, <message_output>)

sde.setcurrentversion

Festlegen von Geodatabase-Version und Status, auf die zugegriffen wird.

Es wird auf den Status zugegriffen, auf den die Version zu dem Zeitpunkt verwiesen hat, zu dem Sie "setcurrentversion" aufgerufen haben.

CALL sde.setcurrentversion('<child_version>', <message_code_output>, <message_output>)

sde.edit_version

Starten und Beenden einer Editiersitzung für eine benannte Version.

Bearbeitungen in der Transaktion werden immer dann bestätigt, wenn dieses Verfahren aufgerufen wird.

CALL sde.edit_version('<child_version>', <1 or 2>, <message_code_output>, <message_output>)

Geben Sie 1 an, um die Editiersitzung zu starten. Geben Sie 2 an, um sie zu beenden.

Die Parameter in den Aufrufanweisungen stellen Folgendes dar:

  • "<parent_version>" ist die Version, aus der Ihre Version erstellt wird.
  • "<child_version>" ist die benannte Version, die Sie zum Bearbeiten erstellen.
  • "<name_rule>" gibt an, ob der für die Version angegebene Name entsprechend der Vorgabe übernommen werden soll (2) oder ob ein eindeutiger Name erstellt werden soll, falls ein Name doppelt angegeben wird (1).
  • "<access>" ist die Berechtigungsstufe der Version: 0 = "Privat", 1 = "Öffentlich", 2 = "Geschützt".
  • "<description>" ist eine Textbeschreibung der Child-Version.
  • "<message_code_output>" legt fest, dass der SQL-Code an Sie zurückgegeben wird.
  • "<message_output>" legt fest, dass die SQL-Meldungen an Sie zurückgegeben werden.

In den folgenden Schritten wird aus Default eine benannte Version (myedits12111) erstellt, und es werden Bearbeitungen in dieser Version über die versionierte Sicht blic_evw durchgeführt.

  1. Erstellen Sie über die Befehlszeile eine neue Version, in der Sie die Bearbeitungen vornehmen.
    CALL sde.create_version ('SDE.DEFAULT', 'myedits12111', 1, 1, 'versioned view edit version', ?, ?);
    
  2. In einfache Anführungszeichen eingeschlossener Text wird wörtlich gelesen. Daher muss der Text, den Sie innerhalb von Anführungszeichen eingeben, hinsichtlich Groß-/Kleinschreibung dem in der Datenbank gespeicherten Text entsprechen (komplette Großschreibung, komplette Kleinschreibung oder eine Mischung).

  3. Legen Sie die Version für die Editiersitzung auf die soeben erstellte Child-Version fest.
    CALL sde.setcurrentversion('myedits12111', ?, ?);
    

    Hiermit wird der Bearbeitungsstatus auf den aktuellen Status "myedits12111" festgelegt.

  4. Starten Sie eine Editiersitzung, indem Sie die gespeicherte Prozedur edit_version aufrufen und 1 angeben. "1" bedeutet, dass eine Editiersitzung gestartet wird.
    CALL sde.edit_version('myedits12111', 1, ?, ?);
    
  5. Starten Sie über einen SQL-Client eine neue Transaktion, um "blic_evw" zu bearbeiten.
  6. Nehmen Sie mit SQL einige Bearbeitungen der versionierten Sicht vor.
    INSERT INTO blic_evw (propowner, date_entered, location)
    VALUES (
      'V. Nay', 
      CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125699 0.0046700)', 12));
    UPDATE blic_evw 
    SET (phone1,phone2) = ('555.111.2345','555.111.6789') 
    WHERE propowner = 'Tella Chomsky';
    UPDATE blic_evw
    SET exp_date = '2020-06-30 17:00:00'
    WHERE lid = 22903;
    UPDATE blic_evw
    SET location = db2gse.ST_PointFromText ('point (0.0125705 0.0046688)', 12))
    WHERE lid = 8992;
    INSERT INTO blic_evw 
    (codenum, propowner) 
    VALUES (456, 'Anjo Badsu');
    DELETE FROM blic_evw
    WHERE lid = 133;
    
  7. Speichern Sie die Änderungen mit einem Commit.
    COMMIT;
    
  8. In SQL werden weitere Bearbeitungen vorgenommen. Schließen Sie die Editiersitzung nach dem Beenden der nächsten Bearbeitungen.
  9. Beenden Sie die Editiersitzung, indem Sie die gespeicherte Prozedur edit_version aufrufen, nun aber den Wert 2 angeben. "2" bedeutet, dass die Editiersitzung beendet ist.
    CALL sde.edit_version('myedits12111', 2, ?, ?);
    

    Tipp:

    Sie können nur eine Version pro Editiersitzung bearbeiten. Wenn Sie beispielsweise eine zweite Version (z. B. "mynewedits") bearbeiten möchten, müssen Sie die Editiersitzung für "myedits12111" schließen, wie in diesem Schritt gezeigt wird. Dann können Sie setcurrentversion aufrufen, um auf die Version mynewedits zu verweisen und durch Aufrufen von edit_version eine Editiersitzung für diese zu starten.

Wechseln vom Bearbeiten einer benannten Version zurück zur Default-Version

Wenn Sie zum direkten Bearbeiten der Default-Version zurückkehren müssen (wenn Ihnen Ihr Vorgesetzter z. B. mitteilt, dass anderen Benutzern am Standort eine bestimmte Bearbeitung sofort angezeigt werden muss), können Sie "set_default" aufrufen, um wieder zum Bearbeiten der Default-Version zu wechseln. Die Bearbeitungen, die Sie an der Default-Version vorgenommen haben, werden anderen Benutzern mit einer Verbindung zur Default-Version angezeigt, sobald sie ihre Client-Verbindungen aktualisieren.

Die gespeicherte Prozedur und die Syntax für das Bearbeiten der Default-Version der Geodatabase lauten wie folgt:

Gespeicherte ProzedurZweckSyntax und Beschreibung

sde.set_default

Zurückkehren zum Bearbeiten des aktuellen Status der Default-Version.

Rufen Sie diese Prozedur auf, wenn Sie eine benannte Version oder einen bestimmten Status der Default-Version bearbeitet haben, aber zum Bearbeiten der aktuellen Version von Default zurückkehren möchten.

CALL sde.set_default (<message_code_output>, <message_output>)

"<message_code_output>" legt fest, dass der SQL-Code an Sie zurückgegeben wird. "<message_output>" legt fest, dass die SQL-Meldungen an Sie zurückgegeben werden.

  1. Rufen Sie an der SQL-Eingabeaufforderung die Prozedur set_default auf.
    CALL sde.set_default
    

    Für die Sitzung wird nun festgelegt, dass der aktuelle Status bearbeitet wird, auf den die Default-Version verweist.

  2. Bearbeiten Sie die versionierte Sicht blic_evw.
    INSERT INTO blic_evw (propowner, b_name, date_entered, location) VALUES (  'Ruben Gol',   CURRENT TIMESTAMP, 
      'Chez Coiffure',  db2gse.ST_PointFromText ('point (0.0125650 0.0046721)', 12));
    
  3. Speichern Sie die Änderung mit einem Commit.
    COMMIT;
    

    Bei anderen Clients, die auf den gleichen Status der Default-Version oder eines Status in ihrer Lineage verweisen, können deren Verbindungen aktualisiert und das neue Punkt-Feature angezeigt werden.

Abgleichen der Änderungen an der versionierten Version und Zurückschreiben dieser

Wenn das Bearbeiten in der benannten Version abgeschlossen ist, müssen Sie Konflikte mit ArcGIS abgleichen, prüfen und lösen sowie die Änderungen zurückschreiben. Dies kann in ArcGIS Desktop mit dem Geoverarbeitungswerkzeug Versionen abgleichen oder einem Python-Skript durchgeführt werden. Weitere Informationen finden Sie in den folgenden Themen:

  • Kurzer Überblick über das Abgleichen einer Version
  • Abgleichen einer Version
  • Kurzer Überblick zum Überprüfen von Konflikten
  • Zurückschreiben von Änderungen
  • Abgleichen von Versionen
Tipp:

Wenn die Daten, die Sie bearbeiten, mit der Option zum Verschieben von Änderungen in die Basistabelle als versioniert registriert wurden, werden die Änderungen nach dem Abgleichen und Zurückschreiben in die Default-Version verschoben.

Sobald die Änderungen in die Default-Version zurückgeschrieben wurden, können Sie die benannte Version löschen. Die gespeicherte Prozedur und die Syntax für das Löschen der benannten Version nach dem Abgleichen und Zurückschreiben in die Default-Version der Geodatabase lauten wie folgt:

Gespeicherte ProzedurZweckSyntax und Beschreibung

sde.delete_version

Löscht eine Geodatabase-Version.

CALL sde.delete_version('<child_version>', <message_code_output>, <message_output>)

Im folgenden Beispiel wird "myedits12111" gelöscht, nachdem alle Änderungen abgeglichen und in die Default-Version zurückgeschrieben wurden:

CALL sde.delete_version ('myedits12111', ?,?);

Verwandte Themen

  • Überblick über das Bearbeiten von versionierten Daten mit SQL
  • Was ist eine versionierte Sicht?
  • Aktivieren des SQL-Zugriffs auf Geodatabase-Daten aus ArcGIS Desktop
  • Version_View_Name
  • Is_Versioned

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches