UPPER_ATTRIBUTE_NAMES 関数
UPPER 関数 と同じ大文字/小文字の変換ルーチンを使用して、SUPER 値のすべての該当する属性名を大文字に変換します。UPPER_ATTRIBUTE_NAMES は、UTF-8 マルチバイト文字をサポートします (1 文字につき最大 4 バイトまで)。
SUPER 属性名を小文字に変換するには、LOWER_ATTRIBUTE_NAMES 関数 を使用します。
構文
UPPER_ATTRIBUTE_NAMES(super_expression)
引数
- super_expression
-
SUPER 式。
戻り型
SUPER
例
SUPER 属性名を大文字に変換する
次の例では、UPPER_ATTRIBUTE_NAMES を使用して、テーブル内のすべての SUPER 値の属性名を変換します。
-- 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"]}]
UPPER_ATTRIBUTE_NAMES がどのように機能するかを確認します。
NULL 値とスカラー SUPER 値 (
"a"
など) は変更されません。SUPER オブジェクトでは、すべての属性名が大文字に変更されますが、
"b"
などの属性値は変更されません。UPPER_ATTRIBUTE_NAMES は、SUPER 配列内または別のオブジェクト内にネストされているすべての SUPER オブジェクトに再帰的に適用されます。
重複する属性名を持つ SUPER オブジェクトでの UPPER_ATTRIBUTE_NAMES の使用
SUPER オブジェクトに大文字と小文字だけが異なる名前の属性が含まれている場合、UPPER_ATTRIBUTE_NAMES はエラーを発生させます。次の例を考えます。
SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}'));
error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.