Acceso a datos con matrices de variables de lenguaje principal
Una matriz de variable de lenguaje principal es una matriz de datos que se declara en un lenguaje de host para su uso dentro de una sentencia de SQL. Puede recuperar datos en matrices de variables de lenguaje principal para que los utilice el programa de aplicación. También puede colocar datos en matrices de variables de lenguaje principal para insertar filas en una tabla.
Puede especificar matrices de variables de lenguaje principal en C, C + +, COBOL o PL/I. Cada matriz de variables de lenguaje principal contiene valores para una columna, y cada elemento de la matriz corresponde a un valor para una columna. Debe declarar la matriz en el programa de lenguaje principal antes de utilizarlo.
Solo se puede hacer referencia a las matrices de variables de lenguaje principal como una referencia simple en los contextos siguientes. En los diagramas de sintaxis, host-variable-array designa una referencia a una matriz de variables de host.
- En una sentencia FETCH para una captación de varias filas. Ver declaración FETCH.
- En la forma FOR n ROWS de la sentencia INSERT con una matriz de variables de host para los datos de origen. Ver declaración INSERT.
- En una sentencia MERGE con varias filas de datos de origen. Véase la declaración MERGE.
- En una sentencia EXECUTE para proporcionar un valor para un marcador de parámetro en una forma dinámica FOR n ROWS de la sentencia INSERT o una sentencia MERGE. Ver la instrucción EXECUTE.
Si una aplicación hace referencia a una matriz de variables de host en otros contextos no admitidos, Db2 devuelve el error SQLCODE -312.
Las matrices de variables de lenguaje principal se definen mediante sentencias del lenguaje principal, como se explica en los temas siguientes:
- Matrices de variables de host en C y C++
- Matrices de variables de host en COBOL
- Matrices de variables de host en PL/I
Ejemplo
La sentencia siguiente utiliza la matriz de variables de lenguaje principal, COL1, y la matriz de indicadores correspondiente, COL1IND. Suponga que COL1 tiene 10 elementos. El primer elemento de la matriz corresponde al primer valor, etc. COL1IND debe tener como mínimo 10 entradas.
EXEC SQL
SQL FETCH FIRST ROWSET FROM C1 FOR 5 ROWS
INTO :COL1 :COL1IND
END-EXEC.