Delen via


OBJECT type

Van toepassing op: vinkje als ja aan 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 id met de naam van het veld. 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

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"}