Función UPPER_ATTRIBUTE_NAMES - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

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.