OBJECT
tür
Şunlar için geçerlidir: Databricks Runtime 15.3 ve üzeri
BIR DEĞIŞKENdeki değerleri, bir alan kümesi tarafından açıklanan yapıyla temsil eder.
Bir alan dizisi tarafından açıklanan yapılandırılmış türleri depolamak ve işlemek için STRUCT'ye bakın.
Önemli
bir OBJECT
tablo sütununda depolanamaz.
Yalnızca schema_of_variant veya schema_of_variant_agg çağrılırken kullanıma sunulur.
Bir OBJECT
türü kullanmak için bir STRUCT veya MAP'e atamanız gerekir.
Sözdizimi
OBJECT < [fieldName [:] fieldType [, ...] ] >
fieldName
: Alanı adlandıran bir tanımlayıcı. Adlar benzersiz olmalıdır.fieldType
: Herhangi bir veri türü.
Sınırlar
Türü, 0'a eşit veya daha büyük herhangi bir sayıda alanı destekler.
Değişmez Değerler
değerleri OBJECT
VARIANT dışında oluşturulamaz.
Bunlar, parse_json() işlevini kullanarak bir JSON dizesini ayrıştırma VARIANT
işleminin sonucu olarak elde edilir.
Notlar
- Bir ayıklamak
OBJECT
için:- türüne
OBJECT
gitmek için JSON yol ifadesi kullanan variant_get işlevi. - : bir JSON yol ifadesi kullanarak ayrıştırmak
OBJECT
için (iki nokta üst üste işareti) işleci. - hata toleransı olan bir türe gitmek için JSON yolu kullanan try_variant_get
OBJECT
işlevi. - cast işlevi veya :: (iki nokta üst üste işareti) işlecini
OBJECT
STRUCT veya MAP'e atama. - try_cast işlevi veya ?:: (üçlü iki nokta üst üste işareti) işlecini
OBJECT
kullanarak STRUCT veya MAP'e dönüştürün.
- türüne
Örnekler
> SELECT schema_of_variant(parse_json('{"key": 123, "data": 5.1 }'));
OBJECT<data: DECIMAL(2,1), key: BIGINT>
-- Casting from a an OBJECT to a STRUCT is by name, because OBJECT fields are not ordered.
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<data: DECIMAL(2,1), key: BIGINT>);
{"data":5.1,"key":123}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<key: BIGINT, data: DECIMAL(2,1)>);
{"key":123, "data":5.1}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS MAP<STRING, DECIMAL(20, 1)>);
{"data":"5.1","key":"123.0"}