OBJECT típus

A következőre vonatkozik:igen jelölés van 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

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