Función UPPER_ATTRIBUTE_NAMES - Amazon Redshift

Función UPPER_ATTRIBUTE_NAMES

Convierte todos los nombres de los atributos aplicables de un valor SUPER a mayúsculas, con la misma rutina de conversión de mayúsculas y minúsculas que Función UPPER. UPPER_ATTRIBUTE_NAMES admite caracteres multibyte UTF-8 de hasta un máximo de cuatro bytes por carácter.

Para convertir los nombres del atributo SUPER a minúsculas, use Función LOWER_ATTRIBUTE_NAMES.

Sintaxis

UPPER_ATTRIBUTE_NAMES(super_expression)

Argumentos

super_expression

Una expresión SUPER.

Tipo de retorno

SUPER

Ejemplos

Conversión de los nombres del atributo SUPER a mayúsculas

En el siguiente ejemplo, se utiliza UPPER_ATTRIBUTE_NAMES para convertir los nombres de los atributos de todos los valores SUPER de una tabla.

-- Create a table and insert several SUPER values. CREATE TABLE t (i INT, s SUPER); INSERT INTO t VALUES (1, NULL), (2, 'a'::SUPER), (3, JSON_PARSE('{"AttributeName": "b"}')), (4, JSON_PARSE( '[{"Subobject": {"c": "c"}, "Subarray": [{"d": "d"}, "e"] }]')); -- Convert all attribute names to uppercase. UPDATE t SET s = UPPER_ATTRIBUTE_NAMES(s); SELECT i, s FROM t ORDER BY i; i | s ---+-------------------------------------------------- 1 | NULL 2 | "a" 3 | {"ATTRIBUTENAME":"B"} 4 | [{"SUBOBJECT":{"C":"c"},"SUBARRAY":[{"D":"d"}, "e"]}]

Observe cómo funciona UPPER_ATTRIBUTE_NAMES.

  • Los valores NULL y los valores escalares SUPER como "a" permanecen inalterados.

  • En un objeto SUPER, todos los nombres de los atributos se cambian a mayúsculas, pero los valores de los atributos, como "b", permanecen inalterados.

  • UPPER_ATTRIBUTE_NAMES se aplica de forma recursiva a cualquier objeto SUPER que esté anidado dentro de una matriz SUPER o dentro de otro objeto.

Uso de UPPER_ATTRIBUTE_NAMES en un objeto SUPER con nombres de atributos duplicados

Si un objeto SUPER contiene atributos cuyos nombres solo difieren en mayúsculas y minúsculas, UPPER_ATTRIBUTE_NAMES generará un error. Considere el siguiente ejemplo.

SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}')); error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.