Editar datos de una geodatabase no versionada en Oracle con SQL

Puede utilizar SQL para actualizar, insertar datos y eliminar datos de tablas no versionadas en la geodatabase si no participan en el comportamiento de la geodatabase. Consulte ¿Qué tipo de datos puede editarse con SQL? para obtener información sobre los tipos de datos y comportamiento de la base de datos que no puede editar con SQL.

Todos los datos que se registran con la geodatabase tienen un campo ObjectID (Id. de fila) único, no nulo, mantenido por el sistema. Cuando utiliza SQL para insertar registros en las tablas no versionadas en la geodatabase, debe proporcionar un valor único para ObjectID.

Utilice la función Next_RowID del paquete sde.gdb_util para generar un valor nuevo y único para ObjectID.

La función Next_RowID utiliza dos parámetros: propietario de la tabla y nombre de la tabla. Con el propietario de la tabla y el nombre de la tabla, se pueden crear una sentencia SQL para llenar el campo ObjectID.

NotaNota:

El próximo ObjectID disponible no es necesariamente el siguiente número secuencial después del último ObjectID insertado. Los ObjectID para algunas aplicaciones cliente se asignan en lotes, de modo que el siguiente ObjectID puede ser un número mucho mayor que el último que usó. Además, cualquier ObjectID del lote no utilizado se devuelve al grupo de valores disponibles, lo que significa que el siguiente valor de ObjectID disponible puede realmente ser un número menor que el último que insertó.

Pasos:
  1. Inicie sesión en la base de datos desde un editor de SQL, como SQL*Plus.

    Asegúrese de iniciar sesión en la base de datos como un usuario que tiene permiso para editar los datos.

  2. Incluya la función sde. gdb_util. next_rowid con los nombres del propietario y de la tabla en la sentencia INSERT para insertar el siguiente valor disponible en el campo ObjectID.

    En este ejemplo, un segmento de línea de ST_Geometry se inserta en la clase de entidad STREAMS.

    INSERT INTO eng2.streams (OBJECTID,NAME,SHAPE) VALUES (sde.gdb_util.next_rowid('ENG2', 'STREAMS'),  'TRANQUIL',  sde.ST_GEOMETRY('linestring (750 150, 750 750)', 4)  );
    
  3. Puede continuar editando o, si ya terminó, puede confirmar las modificaciones en la base de datos.

Temas relacionados

9/11/2013