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. Cuando edite una tabla sin control de versiones, puede insertar la Id. directamente en la tabla. Al editar una tabla versionada, utilice la utilidad sde.version_user_ddl.retrieve_guid para insertar un valor en la columna GUID o Id. global en una vista versionada 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 que se versionó con ArcGIS 10.1 o superior, una vista versionada ya existe en la base de datos de esa tabla. El nombre de la vista será el nombre de la tabla anexado con _vw. Si no existe ya una vista versionada, puede crear una desde ArcGIS for Desktop. Vea Crear vistas versionadas de ArcGIS for Desktop para obtener instrucciones.
  2. Abra un editor SQL, como SQL*Plus.
  3. Conéctese a la base de datos como usuario con privilegios para editar la tabla.

    Si está editando a través de una vista con control de versiones, el usuario debe tener los privilegios para editar la vista.

  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, consulte Editar datos versionados en Oracle con SQL para obtener instrucciones acerca del uso de vistas versionadas para editar. 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 versionada, mytable_vw. La tabla contiene una columna de ST_Geometry y utiliza el SRID obtenido en el paso 4.

    INSERT INTO mytable_vw (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.
9/11/2013