Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:
a Databricks Runtime 15.3 és újabb verziókra
Értékeket jelöl a VARIANT-ban egy mezőkészlet által leírt struktúrával.
A strukturált típusok tárolását és feldolgozását a STRUCT-ben tekintheti meg, amelyet egy mezősorozat ír le.
Fontos
A OBJECT nem tárolható táblaoszlopban.
Csak schema_of_variant vagy schema_of_variant_agg hívása esetén érhető el.
Egy OBJECT típus használatához egy STRUCT-ként vagy MAP-ként kell konvertálnia.
Szintaxis
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName: A mező nevét tartalmazó azonosító. A neveknek egyedinek kell lenniük. -
fieldType: Bármilyen adattípus.
Korlátok
A típus tetszőleges számú, 0-nál nagyobb vagy egyenlő mezőt támogat.
Literálok
A OBJECT kívül nem hozhatók létre értékek.
Ezek egy JSON-sztringnek a VARIANT függvény használatával történő elemzéséből erednek.
Jegyzetek
-
OBJECTkinyerése esetén a következőt teheti:-
variant_getfüggvény egy JSON-elérési útkifejezést használ aOBJECTtípusra való navigáláshoz. -
:(kettőspont) operátor aOBJECTJSON-elérési út kifejezéssel történő elemzéséhez. -
try_variant_getfüggvény egy JSON-elérési út használatával lépkedjen be egyOBJECThibatűréssel rendelkező típusba. -
castfüggvényt vagy::(kettőspontjel) operátort , hogy aOBJECTfüggvényt egy STRUCT vagy MAP függvényhez rendelje. -
try_castfüggvényt vagy?::(kérdő kettőspont jel) operátort használva aOBJECTtípust STRUCT vagy MAP típusra alakítsa át.
-
Példák
> 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"}