Construtor de matriz

Um construtor array é um elemento de linguagem que pode ser usado para definir e construir um valor de tipo de dados array dentro de um contexto válido.

Sintaxe

Read syntax diagramSkip visual syntax diagramARRAY[ WITH,common-table-expressionfullselect,element-expressionNULL ]

Autorização

Não são necessárias autorizações específicas para referencia um construtor de matriz dentro de uma instrução SQL, entretanto para que a execução da instrução seja bem sucedida todos os demais requisitos de autorização para a instrução devem ser satisfeitos.

Descrição

COM common-table-expression
Define uma expressão de tabela comum para uso com a seguinte seleção completa.
seleção completa
Uma seleção completa que retorna uma única coluna. Os valores que são retornados pela seleção completa para cada linha são os elementos da matriz. A cardinalidade da matriz é igual ao número de linhas que são retornadas pela seleção completa. Se a seleção completa incluir um order-by-cláusula, a ordem determina a ordem em que valores de linha são atribuídos a elementos da matriz. Se não for especificado nenhum order-by-cláusula , a ordem em que valores de linha são atribuídos a elementos da matriz não é determinística.
elemento-expressão
Uma expressão que define o valor de um elemento na matriz. A cardinalidade da matriz é igual ao número de expressões de elemento. O primeiro elemento-expressão é atribuído ao elemento matriz com índice array 1. O segundo elemento-expressão é designado para o elemento matriz com índice array 2 e assim por diante. A cada elemento-expressão deve ter um tipo de dado compatível com cada outro elemento-expressão e o tipo de base da matriz é determinado usando as Regras para tipos de dados de resultado tópico.
NULL
Especifica o valor nulo.

Se nenhum valor for especificado dentro dos suportes, o resultado é uma matriz vazia.

Regras

  • O tipo de base do array-construtor, como derivado do element-expressions ou o fullselect, deve ser assignável para o tipo de base da matriz de destino (SQLSTATE 42821).
  • O número de elementos no array-construtor não deve exceder a cardinalidade máxima da variável de matriz de destino (SQLSTATE 2202F).

Notas

  • Um construtor array pode ser usado para definir apenas uma matriz ordinária com elementos que não são um tipo de linha. Um construtor array não pode ser usado para definir uma matriz associativa ou uma matriz ordinária com elementos que são um tipo de linha. Tais matrizes só podem ser construídas mediante a atribuição dos elementos individuais.

Exemplos

Exemplo 1: Configure a variável matriz RECENT_CALLS do tipo array PHONENUMBERS para uma matriz de números fixos.
   SET RECENT_CALLS = ARRAY[9055553907, 4165554213, 4085553678]
Exemplo 2: Configure a variável matriz DEPT_PHONES do tipo array PHONENUMBERS a uma matriz de telefone números recuperados do DEPARTMENT_INFO tabela.
   SET DEPT_PHONES = ARRAY[SELECT DECIMAL(AREA_CODE CONCAT '555' CONCAT EXTENSION,16)
                                      FROM DEPARTMENT_INFO
                                      WHERE DEPTID = 624]