Sentencia INSERT

La sentencia INSERT inserta una fila en una tabla de base de datos.

SINTAXIS

Se inserta una sola fila en la tabla identificada por ReferenciaTabla. La lista NombreColumna identifica las columnas en la tabla de destino a las que se han de dar valores específicos. Estos valores los determinan las expresiones dentro de la cláusula VALUES (la primera expresión proporciona el valor de la primera columna con nombre, etc.). El número de expresiones en la cláusula VALUES debe ser el mismo que el número de columnas con nombre. A las columnas que están en la tabla pero no se mencionan en la lista, se les da su valor por omisión.

Referencia de tabla

Una referencia de tabla es un caso especial de referencias de campo que se utiliza para hacer referencia a los árboles de mensaje. Siempre empieza con la palabra "Database" y puede contener cualquiera de estos elementos:
  • Sólo un nombre de tabla
  • Un nombre de esquema y un nombre de tabla
  • Un nombre de origen de datos (es decir, el nombre de una instancia de base de datos), un nombre de esquema y un nombre de tabla
En cada caso, el nombre puede especificarse directamente o mediante una expresión encerrada entre llaves ({...}). Un nombre de origen de datos, esquema o tabla especificado directamente, puede ser sustituido. Es decir, si el nombre utilizado se ha declarado como un nombre conocido, se utiliza más bien el valor del nombre declarado en lugar del nombre mismo (consulte Sentencia DECLARE).

Si no se especifica un nombre de esquema, se utiliza el esquema por omisión para el usuario de base de datos del intermediario.

Si no se especifica un nombre de origen de datos, se utiliza la base de datos que indica el atributo data source del nodo.

Manejo de errores

Es posible que se produzcan errores durante las operaciones de inserción. Por ejemplo, es posible que la base de datos no esté operativa, o la tabla puede tener limitaciones definidas que la nueva fila violaría. En estos casos, se genera una excepción (a menos que el nodo tenga su propiedad Generar excepción en error de base de datos establecida en FALSE). Estas excepciones establecen los valores SQL adecuados de código, estado, error nativo y texto de error, y pueden ser manejadas por los manejadores de errores (consulte la sentencia DECLARE HANDLER).

Para obtener más información sobre el manejo de errores de base de datos, consulte Captura del estado de la base de datos.

Ejemplos

El ejemplo siguiente presupone que la propiedad dataSource del nodo Database se ha configurado y que la base de datos que identifica tiene una tabla denominada TABLE1 con las columnas A, B y C.

Si un mensaje tiene el cuerpo XML genérico siguiente:
<A>
 <B>1</B>
 <C>2</C>
 <D>3</D>
</A>
La sentencia INSERT siguiente inserta una fila nueva en la tabla con los valores 1, 2 y 3 para las columnas A, B y C:
INSERT INTO Database.TABLE1(A, B, C) VALUES (Body.A.B, Body.A.C, Body.A.D);
El ejemplo siguiente muestra el uso de nombres calculados de origen de datos, esquema y tabla:
-- Declarar variables para que contengan los nombres de origen de datos, esquema
-- y tabla, y establecer sus valores por omisión
DECLARE Source CHARACTER 'Production';
DECLARE Schema CHARACTER 'db2admin';
DECLARE Table  CHARACTER 'DynamicTable1';

-- Aquí va el código que calcula sus valores actuales

-- Insertar los datos en la tabla
INSERT INTO Database.{Source}.{Schema}.{Table} (Name, Value) values ('Joe', 12.34);
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Captura del estado de la base de datos
Referencia relacionada
Diagramas de sintaxis: tipos disponibles
Sentencias ESQL
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05050_