Partager via


TypeOBJECT

S’applique à : coche marquée 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.

Pour le stockage et le traitement des types structurés décrits par une séquence de champs, consultez STRUCT.

Important

OBJECT ne peut pas être stocké dans une colonne de table. Il n’est exposé que lors de l’appel de schema_of_variant ou schema_of_variant_agg. Pour utiliser un type OBJECT, 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. Elles sont le résultat de l’analyse d’une chaîne JSON en un VARIANT à l’aide de la fonction parse_json().

Notes

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