Insertar un valor en una columna de Id. global o GUID en Oracle con SQL
Los tipos de datos de Id. global y GUID almacenan cadenas de texto de estilo de registro que están compuestas por 36 caracteres encerrados entre paréntesis. Estas cadenas únicamente identifican una entidad o fila de tabla dentro de una geodatabase y en todas las geodatabases. Los Id. globales se usan para mantener la singularidad de los registros en réplicas de geodatabase unidireccionales y bidireccionales. Los GUID se pueden agregar a cualquier capa.
Por lo tanto, si la tabla que quiere editar participa en la replicación o contiene una columna GUID, debe insertar un valor único en la columna de Id. global o GUID cuando inserta un registro nuevo en la tabla con SQL. Para hacer esto, invoque la utilidad sde.version_user_ddl.retrieve_guid. Si la tabla que está editando es versionada, utilice la utilidad sde.version_user_ddl.retrieve_guid para editar una vista multiversionada de la tabla con SQL.
Puede agregar Id. globales a una clase de entidad en la ventana Catálogo al hacer clic con el botón derecho en el dataset y al hacer clic en Agregar Id. globales. La geodatabase mantiene estos valores automáticamente cuando edita por medio de ArcGIS.
-
Si está editando una tabla versionada, abra una ventana de MS-DOS o de shell y ejecute el comando sdetable para crear una vista multiversionada.
Consulte Crear vistas multiversionadas para obtener instrucciones.
- Abra un editor SQL, como SQL*Plus.
- Conéctese a la base de datos como usuario con permisos para editar la tabla.
-
Si la tabla o la tabla en la que está basada la vista contiene una columna de ST_Geometry, consulte la tabla ST_GEOMETRY_COLUMNS para encontrar el Id. de referencia espacial (SRID) de la tabla.
SELECT srid FROM sde.st_geometry_columns WHERE table_name='MYTABLE' AND owner='USER22'; SRID ---------- 4
Todo registro que inserte en esta vista o tabla debería usar este SRID.
- Si está editando una tabla versionada, siga las instrucciones en Editar los datos versionados en Oracle con vistas multiversionadas y SQL para crear una versión para editar, configurar la versión y comenzar una sesión de edición. Si está editando una tabla no versionada, proceda con el paso siguiente.
-
Cuando inserte un registro, utilice la utilidad sde.version_user_ddl.retrieve_guid para insertar el próximo valor de Id. global o GUID.
En este ejemplo, se inserta un registro en la vista multiversionada, mytable_mv. La tabla contiene una columna de ST_Geometry y utiliza el SRID obtenido en el paso 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)));
- Cuando haya terminado las modificaciones, guárdelas en la base de datos.
- Cuando haya terminado de editar, detenga la sesión de edición como se describe en Editar los datos versionados en Oracle con vistas multiversionadas y SQL si hubiera estado editando una tabla versionada.