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.