HOW TO
In den folgenden Anweisungen wird beschrieben, wie ein Wert unter Verwendung von SQL (Structured Query Language) für Oracle in eine Global-ID- oder GUID (Globally Unique Identifier)-Spalte in der versionierten Sicht einer Enterprise-Geodatabase eingefügt wird.
Mit den Datentypen "Global ID" und "GUID" werden registrierungsartige Zeichenfolgen aus 36 Zeichen gespeichert, die in geschweifte Klammern eingeschlossen sind. Mit diesen Zeichenfolgen werden Features oder Tabellenzeilen innerhalb einer Geodatabase oder Geodatabase-übergreifend eindeutig gekennzeichnet. Dies dient der Nachverfolgung von Features bei unidirektionalen und bidirektionalen Geodatabase-Replikationen und wird in Beziehungen oder in Anwendungen verwendet, die GUIDs erfordern.
Wenn bei einer Beziehung ein Feld "Globale ID" der Ursprungsschlüssel ist, muss der Zielschlüssel ein GUID-Feld sein. Fügen Sie einer Feature-Class in ArcCatalog globale IDs hinzu, indem Sie mit der rechten Maustaste auf ArcCatalog klicken und anschließend auf "Globale IDs hinzufügen" klicken. In der Geodatabase werden die Werte automatisch verwaltet. Erstellen Sie das GUID-Feld in ArcCatalog, und verwalten Sie seine Werte.
Geben Sie, wenn Sie unter Verwendung von SQL eine Zeile in eine versionierte Sicht mit einer Global-ID-Spalte einfügen, einen eindeutigen GUID-Wert für die Global-ID-Spalte an.
Hinweis: Weitere Informationen zu globalen IDs, GUIDs und zu der Geodatabase-Replikation finden Sie in der ArcGIS Desktop-Hilfe im Abschnitt mit den Referenzinformationen.Die folgenden Beispiele beziehen sich auf Oracle. Die Vorgehensweise ist aber bei anderen unterstützten Datenbanken ähnlich.
CREATE OR REPLACE FUNCTION GDB_GUID RETURN NCHAR IS guid NCHAR (38); BEGIN guid := upper(RAWTOHEX(SYS_GUID())); RETURN '{'||substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12)||'}'; END; /
grant execute on gdb_guid to public;
"geodatabase administrator" table -o create_mv_view -T parcels_v -t parcels -i <port> -u <user> -p <password>
Hinweis: Weitere Informationen zum Erstellen und Verwenden versionierter Sichten in einer Enterprise-Geodatabase finden Sie in der ArcGIS Desktop-Hilfe.
select registration_id,table_name from sde.table_registry where table_name='PARCELS'; REGISTRATION_ID TABLE_NAME --------------- --------------------- 113 PARCELS
select srid from sde.st_geometry_columns where table_name='PARCELS' and owner='USER1'; SRID ---------- 7
--Create a new version. variable mvvers nvarchar2(97); exec :mvvers := 'PARCELS_42'; exec sde.version_user_ddl.create_version('SDE.DEFAULT',:mvvers,sde.version_util.C_take_name_as_given,sde.version_util.C_version_public,'Parcels WorkOrder 42 Version');
Hinweis: Weitere Informationen zum Bearbeiten versionierter Sichten in einer Enterprise-Geodatabase finden Sie in der ArcGIS Desktop-Hilfe.Im folgenden Beispiel:
Hinweis: Weitere Informationen zum Typ "ST_GEOMETRY" und zum Einfügen der Geometrie in einer Enterprise-Geodatabase finden Sie in der ArcGIS Desktop-Hilfe.
--Set the version to edit. exec sde.version_util.set_current_version('USER1.PARCELS_42'); --Start the edit session. exec sde.version_user_ddl.edit_version('USER1.PARCELS_42',1); --Perform the desired insert. --For Spatial GEOMETRY Types a shape may be inserted. insert into parcels_v (objectid,globalid,shape) values (sde.version_user_ddl.next_row_id('USER1',113),sde.GDB_GUID,(sde.st_polygon ('polygon ((10000 520000, 100008889 55000, 1045545983 234280934, 10000 520000))',7))); --For Non-Spatial GEOMETRY Types (Binary, LOB, etc.) a NULL shape MUST be inserted: insert into parcels_v (objectid,globalid,shape) values (sde.version_user_ddl.next_row_id('USER1',113),sde.GDB_GUID, NULL); --Stop the edit session. exec sde.version_user_ddl.edit_version('USER1.PARCELS_42',2); --Commit the edit. commit;
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen