Editar datos de una geodatabase no versionada en Informix 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 geodatabase que no puede editar con SQL.

NotaNota:

Si la tabla no versionada que desea editar usando SQL está habilitada para archivado, debe editar la vista de archivo de la tabla en lugar de la propia tabla. La vista actualizará automáticamente ciertos campos mantenidos por ArcGIS. Consulte ¿Qué es una vista de archivo? y los temas relacionados para obtener más información.

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. Puede usar la función Next_Row_ID para insertar un valor en el campo ObjectID por medio de SQL.

Este conjunto de instrucciones describe cómo actualizar una fila por vez en una tabla no versionada y cómo insertar un ObjectID. Posiblemente escribirá una rutina o un programa cliente para recuperar los ObjectID y actualizar los datos.

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

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

  2. Haga una consulta en la tabla table_registry para encontrar el Id. de registro y el propietario de la tabla en la cual desea insertar una fila.

    En este ejemplo, se devuelve el Id. de registro y el nombre del propietario para la tabla factories.

    SELECT owner,registration_id,table_name
     FROM sde.table_registry
     WHERE table_name='factories';
    
    owner    registration_id    table_name
    editor1         7           factories
    
  3. Inicie sesión para ejecutar la función next_row_id y obtenga el próximo valor de Id. de fila disponible.
  4. Ejecute la función next_row_id. Esta función es propiedad del usuario sde.

    En este ejemplo, editor1 es el propietario de la tabla y 7 es el Id. de registro de la tabla FACTORIES.

    EXECUTE FUNCTION "sde".next_row_id('editor1',7);
    
    ret_code 0
    err_msg
    rowid 18
    
    1 row(s) retrieved.
    

  5. Vuelva al editor de SQL e inserte un registro en la tabla.
    INSERT INTO factories
     VALUES (
      18,
      'makem'
      ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',4326)
     );
    

Si la tabla contiene además un campo GUID o Id. global, también debe proporcionar un valor único para ese campo. Consulte Insertar un valor en una columna de Id. global en Informix con SQL para obtener más información.

Temas relacionados

5/10/2014