Partage via


TypeOBJECT

S’applique à :check marqué oui Databricks Runtime 15.3 et versions ultérieures

Représente des valeurs dans un VARIANT avec la structure décrite par un ensemble de champs.

Reportez-vous à STRUCT pour stocker et traiter des types structurés décrits par une séquence de champs.

Important

OBJECT ne peut pas être stocké dans une colonne de table. Elle n’est exposée que lors de l’appel de schema_of_variant ou de schema_of_variant_agg. Pour utiliser un OBJECT type, vous devez le caster en STRUCT ou MAP.

Syntaxe

OBJECT < [fieldName [:] fieldType [, ...] ] >
  • fieldName : identificateur qui nomme le champ. Les noms doivent être uniques.
  • fieldType : n’importe quel type de données.

Limites

Le type prend en charge un nombre quelconque de champs supérieur ou égal à 0.

Littéraux

Les valeurs de OBJECT ne peuvent pas être créées en dehors d’un VARIANT. Ils sont le résultat de l’analyse d’une chaîne JSON en un VARIANT par l'utilisation de la fonction parse_json().

Remarques

Exemples

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