Dela via


Typ: OBJECT

Gäller för:markerad ja Databricks Runtime 15.3 och senare

Representerar värden i en VARIANT- med strukturen som beskrivs av en uppsättning fält.

Se STRUCT för lagring och bearbetning av strukturerade typer som beskrivs av en sekvens med fält.

Viktigt!

Det går inte att lagra OBJECT i en tabellkolumn. Den exponeras bara när du anropar schema_of_variant eller schema_of_variant_agg. Om du vill använda en OBJECT typ måste du omvandla den till en STRUCT eller MAP.

Syntax

OBJECT < [fieldName [:] fieldType [, ...] ] >
  • fieldName: En identifierare som namnger fältet. Namnen måste vara unika.
  • fieldType: Alla datatyper.

Gränser

Typen stöder valfritt antal fält som är större eller lika med 0.

Literaler

Det går inte att skapa värden för OBJECT utanför en VARIANT-. De är resultatet av att parsa en JSON-sträng i en VARIANT med hjälp av funktionen parse_json().

Kommentar

Exempel

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