Einfügen eines Werts 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 die zu editierende Tabelle versioniert ist, verwenden Sie das Dienstprogramm "sde.version_user_ddl.retrieve_guid", um eine Multiversioned View der Tabelle per SQL zu bearbeiten.

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 versionierte Tabelle editieren, öffnen Sie eine MS-DOS- oder Shell-Eingabeaufforderung und führen den Befehl "sdetable" aus, um eine Multiversioned View zu erstellen.

    Eine Anleitung finden Sie unter Erstellen von Multiversioned Views.

  2. Öffnen Sie einen SQL-Editor, z. B. SQL*Plus.
  3. Stellen Sie eine Verbindung zur Datenbank als Benutzer her, der über Berechtigungen zum Editieren der Tabelle verfügt.
  4. Wenn die 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. Befolgen Sie beim Editieren einer versionierten Tabelle die Anleitung unter Anweisungen in Bearbeiten von versionierten Daten in Oracle mit Multiversioned Views und SQL, um eine Version für das Editieren zu erstellen, legen Sie die Version fest, und starten Sie dann eine Editiersitzung. 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 Multiversioned View "mytable_mv" eingefügt. Die Tabelle enthält eine "ST_Geometry"-Spalte und nutzt die SRID aus Schritt 4.

    INSERT INTO mytable_mv (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.
  8. Beenden Sie die Editiersitzung nach Abschluss der Bearbeitung wie unter Bearbeiten von versionierten Daten in Oracle mit Multiversioned Views und SQL beschrieben, falls Sie eine versionierte Tabelle bearbeitet haben.

7/10/2012