Einfügen eines Wertes in eine Spalte mit globaler ID oder GUID in Oracle per SQL

Mit den Datentypen "Global ID" und "GUID" werden Zeichenfolgen aus 36 Zeichen gespeichert (ähnlich denen in der Registrierung), die in geschweifte Klammern eingeschlossen sind. Mit diesen Zeichenfolgen werden Features oder Tabellenzeilen innerhalb einer Geodatabase oder Geodatabase-übergreifend eindeutig gekennzeichnet. Globale IDs werden verwendet, um die Eindeutigkeit von Datensätzen in unidirektionalen und bidirektionalen Geodatabase-Replikaten aufrechtzuerhalten. GUIDs können allen Layern hinzugefügt werden.

Falls die zu editierende Tabelle an einer Replikation beteiligt ist oder eine GUID-Spalte enthält, müssen Sie daher einen Einzelwert in die globale ID-Spalte oder die GUID-Spalte einfügen, wenn Sie per SQL einen neuen Datensatz in die Tabelle einfügen. Rufen Sie hierzu das Dienstprogramm "sde.version_user_ddl.retrieve_guid" auf. Wenn Sie eine nicht versionierte Tabelle bearbeiten, können Sie die ID direkt in die Tabelle einfügen. Wenn Sie eine versionierte Tabelle bearbeiten, verwenden Sie das Hilfsprogramm "sde.version_user_ddl.retrieve_guid", um mit SQL einen Wert in die GUID- oder globale ID-Spalte in einer versionierten Ansicht der Tabelle einzufügen.

TippTipp:

Sie können einer Feature-Class im Fenster "Katalog" globale IDs hinzufügen, indem Sie mit der rechten Maustaste auf das Dataset klicken und im Kontextmenü die Option Globale IDs hinzufügen wählen. Beim Editieren mit ArcGIS verwaltet die Geodatabase diese Werte automatisch.

Schritte:
  1. Wenn Sie eine Tabelle bearbeiten, die mit ArcGIS 10.1 oder höher versioniert wurde, ist in der Datenbank für diese Tabelle bereits eine versionierte Ansicht vorhanden. Beim Ansichtsnamen handelt es sich um den Tabellennamen, an den "_vw" angehängt wurde. Wenn keine versionierte Ansicht vorhanden ist, können Sie mit ArcGIS for Desktop eine Ansicht erstellen. Anweisungen finden Sie unter Erstellen von versionierten Ansichten aus ArcGIS for Desktop.
  2. Öffnen Sie einen SQL-Editor, z. B. SQL*Plus.
  3. Stellen Sie als Benutzer mit Berechtigungen zum Bearbeiten der Tabelle eine Verbindung mit der Datenbank her.

    Wenn Sie die Bearbeitung über eine versionierte Ansicht durchführen, muss der Benutzer auch Berechtigungen zum Bearbeiten der Ansicht aufweisen.

  4. Wenn diese Tabelle bzw. die Tabelle, auf der die Ansicht basiert, eine ST_Geometry-Spalte enthält, fragen Sie die Tabelle "ST_GEOMETRY_COLUMNS" ab, um die Raumbezugs-ID (SRID) der Tabelle zu ermitteln.
    SELECT srid 
    FROM sde.st_geometry_columns 
    WHERE table_name='MYTABLE'
    AND owner='USER22';
    

    SRID 
    ---------- 
    4

    Alle Datensätze, die Sie in diese Ansicht oder Tabelle einfügen, sollten diese SRID verwenden.

  5. Wenn Sie eine versionierte Tabelle bearbeiten, finden Sie unter Bearbeiten von versionierten Daten in Oracle mit SQL Anweisungen zum Verwenden von versionierten Ansichten zum Bearbeiten. Wenn Sie eine nicht versionierte Tabelle editieren, fahren Sie mit dem nächsten Schritt fort.
  6. Verwenden Sie beim Einfügen eines Datensatzes das Dienstprogramm "sde.version_user_ddl.retrieve_guid", um den Wert für die nächste globale ID oder GUID einzufügen.

    In diesem Beispiel wird ein Datensatz in die versionierte Ansicht "mytable_vw" eingefügt. Die Tabelle enthält eine ST_Geometry-Spalte und nutzt die SRID aus Schritt 4.

    INSERT INTO mytable_vw (globalid,shape) 
    VALUES
    (sde.version_user_ddl.retrieve_guid,(sde.st_polygon
    
    ('polygon ((10000 520000, 100008889 55000, 1045545983 234280934,
    10000 520000))',4)));
    
  7. Übernehmen Sie die Änderungen in die Datenbank, wenn Sie diese abgeschlossen haben.
9/12/2013