Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks Runtime 15.3 en hoger
Vertegenwoordigt waarden in een VARIANT met de structuur die wordt beschreven door een set velden.
Raadpleeg STRUCT voor het opslaan en verwerken van gestructureerde typen die worden beschreven door een reeks velden.
Belangrijk
De OBJECT kolom kan niet worden opgeslagen in een tabelkolom.
Deze wordt alleen weergegeven wanneer u schema_of_variant of schema_of_variant_agg aanroept.
Als u een OBJECT type wilt gebruiken, moet u het casten naar een STRUCT of MAP.
Syntaxis
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName: Een identificator die het veld een naam geeft. De namen moeten uniek zijn. -
fieldType: elk gegevenstype.
Limieten
Het type ondersteunt een willekeurig aantal velden groter of gelijk aan 0.
Letterlijke waarden
Waarden van OBJECT kunnen niet buiten een VARIANT worden gemaakt.
Ze zijn het resultaat van het parseren van een JSON-tekenreeks in een VARIANT met behulp van de functie parse_json().
Opmerkingen
- Om een
OBJECTte extraheren, kunt u:-
variant_getfunctie met behulp van een JSON-padexpressie om naar hetOBJECTtype te navigeren. -
:operator (dubbele puntteken) om deOBJECTte parseren met behulp van een JSON-padexpressie. -
try_variant_getfunctie met behulp van een JSON-pad om naar eenOBJECTtype te navigeren met fouttolerantie. -
castfunctie of::(dubbele puntteken) operator om deOBJECTnaar een STRUCT of MAP te casten. -
try_castfunctie of?::(question double colon sign) operator om deOBJECTnaar een STRUCT of MAP te casten.
-
Voorbeelden
> 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"}