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 base de datos que no puede editar con SQL.
Todos los datos que se registran con la geodatabase tiene una columna (fila Id.) de Id. de objeto mantenida por el sistema, única y que no es nula. Cuando utiliza SQL para insertar registros en las tablas no versionadas en la geodatabase, debe proporcionar un valor único para el Id. de objeto.
Este conjunto de instrucciones describe cómo actualizar una fila por vez. Posiblemente escribirá una rutina o programa cliente para obtener los Id. de objeto y actualizar sus datos.
-
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.
-
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 REGISTRATION_ID,OWNER,TABLE_NAME FROM SDE.TABLE_REGISTRY WHERE TABLE_NAME = 'FACTORIES'; REGISTRATION_ID OWNER TABLE_NAME 5 gis factories
- Inicie sesión en una aplicación cliente de DB2 o ejecute una rutina PL de SQL para acceder al procedimiento next_row_id.
-
Utilice el Id. de registro y el nombre del propietario que se devuelve de la declaración anterior SELECT (gis y 5) cuando acceda a la rutina next_row_id para obtener el próximo Id. de fila disponible. Esta rutina se almacena en el esquema del usuario sde.
En este ejemplo, GIS es el propietario de la tabla, 5 es el Id. de registro 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_row_id('GIS',5,?,?,?) 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
-
Vuelva a la interfaz de SQL e inserte un registro en la tabla.
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(101)) );