Les types de données d'identifiant global (GlobalID) et GUID contiennent des chaînes de registre constituées de 36 caractères placés entre des accolades. Ces chaînes identifient de manière unique une entité ou une ligne de table dans une géodatabase et entre plusieurs géodatabases. Les identifiants globaux permettent de conserver l'unicité des enregistrements dans des réplicas monodirectionnels et bidirectionnels de géodatabase et dans les données non versionnées utilisées dans les cartes hors connexion. Les GUID peuvent être ajoutés à n'importe quelle table.
Si la table que vous souhaitez mettre à jour fait partie d'une réplication ou de cartes hors connexion ou si elle contient une colonne GUID, vous devez insérer une valeur unique dans la colonne d'identifiant global ou GUID lorsque vous insérez un nouvel enregistrement dans la table à l'aide de SQL. Pour cela, vous pouvez utiliser l'utilitaire sde.gdb_util.next_globalid.
Lorsque vous mettez à jour une table non versionnée qui n'est pas activée pour l'archivage, faites appel à cet utilitaire pour insérer directement l'identifiant dans la table. Lorsque vous mettez à jour une table non versionnée qui est activée pour l'archivage, faites appel à l'utilitaire pour insérer directement l'identifiant dans la vue d'archive de la table. Lorsque vous mettez à jour une table versionnée, faites appel à l'utilitaire pour insérer une valeur dans la vue versionnée de la table.
- Ouvrez un éditeur SQL, tel que SQL*Plus.
- Connectez-vous à la base de données en tant qu'utilisateur autorisé à modifier la table.
Si vous effectuez une mise à jour via une vue versionnée ou d'archive, l'utilisateur doit également détenir des privilèges de modification de la vue.
- Lorsque vous insérez un enregistrement, utilisez l'utilitaire sde.gdb_util.next_globalid pour insérer la prochaine valeur d'identifiant global ou GUID.
Dans cet exemple, un enregistrement est inséré dans mytable. La table contient un ObjectID et une colonne ST_Geometry.
INSERT INTO user22.mytable (objectid, globalid, shape) VALUES ( sde.gdb_util.next_rowid('USER22', "MYTABLE'), sde.gdb_util.next_globalid(), (sde.st_polygon('polygon ((10000 520000, 100008889 55000, 1045545983 234280934, 10000 520000))',4326)) );
- Lorsque vous avez terminé vos modifications, validez-les dans la base de données.