Constructor de matrices
Un constructor de matrices es un elemento de lenguaje que se puede utilizar para definir y construir un valor de tipo de datos de matriz dentro de un contexto válido.
Sintaxis
Autorización
No se necesitan autorizaciones específicas para hacer referencia a un constructor de matrices dentro de una sentencia de SQL. No obstante, para que la ejecución de la sentencia resulte satisfactoria, se deben cumplir los demás requisitos de autorización de la sentencia.
Descripción
- WITH expresión-tabla-común
- Define una expresión de tabla común para su utilización con la siguiente selección completa.
- selección completa
- Una selección completa que devuelve una única columna. Los valores que la selección completa devuelve para cada fila son los elementos de la matriz. La cardinalidad de la matriz es igual al número de filas que la selección completa devuelve. Si la selección completa incluye una cláusula-order-by, el orden determina el orden en el que se asignan los valores de fila a los elementos de la matriz. Si no se especifica ninguna cláusula-order-by, el orden en el que los valores de fila se asignan a los elementos de la matriz no es determinista.
- expresión-elemento
- Una expresión que define el valor de un elemento en la matriz.
La cardinalidad de la matriz es igual al número de expresiones de elementos.
La primera expresión-elemento se asigna al elemento de la matriz con índice de matriz 1. La segunda expresión-elemento se asigna al elemento de la matriz con índice de matriz 2, y así sucesivamente. Cada expresión-elemento debe tener un tipo de datos compatible con cada expresión-elemento, y el tipo base de la matriz se determina tal como se describe en el tema
Normas para tipos de datos de resultados
. - NULL
- Especifica el valor nulo.
Si no se especifica ningún valor entre los corchetes, el resultado es una matriz vacía.
Normas
- El tipo base del constructor-matriz, tal como se deriva de las expresiones-elemento o la selección-completa, debe poderse asignar al tipo base de la matriz de destino (SQLSTATE 42821).
- El número de elementos del constructor-matriz no debe superar la cardinalidad máxima de la variable de matriz de destino (SQLSTATE 2202F).
Notas
- Un constructor de matrices se puede utilizar para definir únicamente una matriz común con elementos que no son de tipo fila. Un constructor de matrices no se puede utilizar para definir una matriz asociativa o una matriz común con elementos de tipo fila. Este tipo de matrices solamente se puede construir mediante la asignación de elementos individuales.
Ejemplos
Ejemplo 1: Establecer la variable de matriz
RECENT_CALLS del tipo de matriz
PHONENUMBERS como una matriz de números fijos. SET RECENT_CALLS = ARRAY[9055553907, 4165554213, 4085553678]Ejemplo 2: Establecer la variable de matriz
DEPT_PHONES del tipo de matriz PHONENUMBERS como una matriz de números de teléfono recuperados de la tabla DEPARTMENT_INFO. SET DEPT_PHONES = ARRAY[SELECT DECIMAL(AREA_CODE CONCAT '555' CONCAT EXTENSION,16)
FROM DEPARTMENT_INFO
WHERE DEPTID = 624]