Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
fungsi LOWER_ATTRIBUTE_NAMES
Mengonversi semua nama atribut yang berlaku dalam nilai SUPER ke huruf kecil, menggunakan rutinitas konversi kasus yang sama dengan. Fungsi LOWER LOWER_ATTRIBUTE_NAMES mendukung karakter multibyte UTF-8, hingga maksimal empat byte per karakter.
Untuk mengonversi nama atribut SUPER menjadi huruf besar, gunakan. Fungsi UPPER_ATTRIBUTE_NAMES
Sintaksis
LOWER_ATTRIBUTE_NAMES(super_expression)
Argumen
- super_ekspresi
-
Ekspresi SUPER.
Jenis pengembalian
SUPER
Catatan penggunaan
Di Amazon Redshift, pengidentifikasi kolom secara tradisional tidak peka huruf besar/kecil dan diubah menjadi huruf kecil. Jika Anda menyerap data dari format data case-sensitive seperti JSON, data tersebut mungkin berisi nama atribut mixed-case.
Pertimbangkan contoh berikut.
CREATE TABLE t1 (s) AS SELECT JSON_PARSE('{"AttributeName": "Value"}'); SELECT s.AttributeName FROM t1;
attributename ------------- NULL
SELECT s."AttributeName" FROM t1;attributename ------------- NULL
Amazon Redshift mengembalikan NULL untuk kedua kueri. Untuk kueriAttributeName
, gunakan LOWER_ATTRIBUTE_NAMES untuk mengonversi nama atribut data menjadi huruf kecil. Pertimbangkan contoh berikut.
CREATE TABLE t2 (s) AS SELECT LOWER_ATTRIBUTE_NAMES(s) FROM t1; SELECT s.attributename FROM t2;
attributename ------------- "Value"
SELECT s.AttributeName FROM t2;attributename ------------- "Value"
SELECT s."attributename" FROM t2;attributename ------------- "Value"
SELECT s."AttributeName" FROM t2;attributename ------------- "Value"
Opsi terkait untuk bekerja dengan nama atribut objek kasus campuran adalah opsi enable_case_sensitive_super_attribute
konfigurasi, yang memungkinkan Amazon Redshift mengenali kasus dalam nama atribut SUPER. Ini bisa menjadi solusi alternatif untuk menggunakan LOWER_ATTRIBUTE_NAMES. Untuk informasi lebih lanjut tentangenable_case_sensitive_super_attribute
, kunjungienable_case_sensitive_super_attribute.
Contoh
Mengonversi nama atribut SUPER menjadi huruf kecil
Contoh berikut menggunakan LOWER_ATTRIBUTE_NAMES untuk mengonversi nama atribut dari semua nilai SUPER dalam sebuah tabel.
-- 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 lowercase. UPDATE t SET s = LOWER_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"]}]
Amati bagaimana LOWER_ATTRIBUTE_NAMES berfungsi.
Nilai NULL dan nilai SUPER skalar seperti
"A"
tidak berubah.Dalam objek SUPER, semua nama atribut diubah menjadi huruf kecil, tetapi nilai atribut seperti
"B"
tetap tidak berubah.LOWER_ATTRIBUTE_NAMES berlaku secara rekursif ke objek SUPER apa pun yang bersarang di dalam array SUPER atau di dalam objek lain.
Menggunakan LOWER_ATTRIBUTE_NAMES pada objek SUPER dengan nama atribut duplikat
Jika objek SUPER berisi atribut yang namanya hanya berbeda dalam kasus mereka, LOWER_ATTRIBUTE_NAMES akan memunculkan kesalahan. Pertimbangkan contoh berikut.
SELECT LOWER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}'));
error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.