Catégories :

Fonctions de données semi-structurées (conversion)

AS_ARRAY

Convertit une valeur VARIANT en tableau.

Voir aussi :

AS_<type_objet> , AS_OBJECT

Syntaxe

AS_ARRAY( <variant_expr> )

Arguments

expr_variante

Une expression qui correspond à une valeur de type VARIANT.

Notes sur l’utilisation

  • Si expr_variante ne contient pas de valeur de type ARRAY, la fonction renvoie NULL.

Exemples

Ceci montre comment utiliser la fonction :

Créer une table et des données :

CREATE TABLE multiple_types (
    array1 VARIANT,
    array2 VARIANT,
    boolean1 VARIANT,
    char1 VARIANT,
    varchar1 VARIANT,
    decimal1 VARIANT,
    double1 VARIANT,
    integer1 VARIANT,
    object1 VARIANT
    );
INSERT INTO multiple_types 
     (array1, array2, boolean1, char1, varchar1, 
      decimal1, double1, integer1, object1)
   SELECT 
     TO_VARIANT(TO_ARRAY('Example')), 
     TO_VARIANT(ARRAY_CONSTRUCT('Array-like', 'example')), 
     TO_VARIANT(TRUE), 
     TO_VARIANT('X'), 
     TO_VARIANT('I am a real character'), 
     TO_VARIANT(1.23::DECIMAL(6, 3)),
     TO_VARIANT(3.21::DOUBLE),
     TO_VARIANT(15),
     TO_VARIANT(TO_OBJECT(PARSE_JSON('{"Tree": "Pine"}')))
     ;

Maintenant, exécutez la requête. Les vrais tableaux stockés en tant que valeurs VARIANT sont reconvertis en valeurs ARRAY. Cependant, la valeur de la colonne object1, qui n’était pas un vrai ARRAY, est convertie en NULL.

SELECT 
       AS_ARRAY(array1) AS "ARRAY1",
       AS_ARRAY(array2) AS "ARRAY2",
       AS_OBJECT(object1) AS "OBJECT",
       AS_ARRAY(object1) AS "OBJECT AS ARRAY"
  FROM multiple_types;
+-------------+-----------------+------------------+-----------------+
| ARRAY1      | ARRAY2          | OBJECT           | OBJECT AS ARRAY |
|-------------+-----------------+------------------+-----------------|
| [           | [               | {                | NULL            |
|   "Example" |   "Array-like", |   "Tree": "Pine" |                 |
| ]           |   "example"     | }                |                 |
|             | ]               |                  |                 |
+-------------+-----------------+------------------+-----------------+