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.

SugerenciaSugerencia:

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.

Pasos:
  1. 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.

  2. Abra un editor SQL, como SQL*Plus.
  3. Conéctese a la base de datos como usuario con permisos para editar la tabla.
  4. 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.

  5. 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.
  6. 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))); 
  7. Cuando haya terminado las modificaciones, guárdelas en la base de datos.
  8. 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.

3/6/2012