Editar datos de una geodatabase no versionada en DB2 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 el procedimiento almacenado 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 DB2 Call Level Interface.

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

  2. Ejecute una sentencia SQL similar a la siguiente para llamar el procedimiento almacenado Next_RowID.

    El procedimiento almacenado Next_RowID toma el propietario de la tabla y el nombre de la tabla como entradas para devolver el siguiente ObjectID para la tabla.

    En este ejemplo, SIG es el propietario de la tabla, FACTORIES es el nombre de la tabla, y los tres signos de interrogación indican los tres parámetros que se devuelven: ROWID, MSGCODE y MESSAGE.

    CALL SDE.next_rowid('GIS','FACTORIES',?,?,?)
    Value of output parameters
    -----------------------------
    
    Parameter Name : O_ROWID
    Parameter Value : 18
    
    Parameter Name : O_MSGCODE
    Parameter Value : 0
    
    Parameter Name : O_MESSAGE
    Parameter Value : Procedure successfully
    completed.
    
    Return Status = 1
    
  3. Inserte un registro en la tabla utilizando el valor O_ROWID devuelto por la sentencia llamada previamente.
    INSERT INTO FACTORIES
    (OBJECTID,NAME,SHAPE)
    VALUES(
    18,
    'megafactory',
    db2gse.ST_PolyFromText('POLYGON( ( 50 31, 54 31, 54 29, 50 29, 50 31) )',
    db2gse.coordref()..srid(4326))
    );
    
  4. Puede continuar editando o, si ya terminó, puede confirmar las modificaciones en la base de datos.

Si la tabla contiene además un campo GUID o Id. global, también debe proporcionar un valor único para ese campo. Consulte Next_GlobalID para obtener más información.

Temas relacionados

5/10/2014