- Catégories :
Fonctions de données semi-structurées et structurées (prédicats de type)
IS_ARRAY¶
Renvoie TRUE si son argument VARIANT contient une valeur ARRAY.
- Voir aussi :
Syntaxe¶
IS_ARRAY( <variant_expr> )
Arguments¶
variant_expr
Une expression qui correspond à une valeur de type VARIANT.
Renvoie¶
Renvoie une valeur BOOLEAN ou NULL.
Renvoie TRUE si la valeur VARIANT contient une valeur ARRAY. Sinon, renvoie FALSE.
Si l’entrée est NULL, renvoie NULL sans signaler d’erreur.
Notes sur l’utilisation¶
Cette fonction ne prend pas en charge un type structuré comme argument d’entrée.
Exemples¶
Les exemples suivants utilisent la fonction IS_ARRAY.
Utiliser la fonction IS_ARRAY dans une clause WHERE¶
Créer et remplir la table vartab
. L’instruction INSERT utilise la fonction PARSE_JSON pour insérer des valeurs VARIANT dans la colonne v
de la table.
CREATE OR REPLACE TABLE vartab (n NUMBER(2), v VARIANT);
INSERT INTO vartab
SELECT column1 AS n, PARSE_JSON(column2) AS v
FROM VALUES (1, 'null'),
(2, null),
(3, 'true'),
(4, '-17'),
(5, '123.12'),
(6, '1.912e2'),
(7, '"Om ara pa ca na dhih" '),
(8, '[-1, 12, 289, 2188, false,]'),
(9, '{ "x" : "abc", "y" : false, "z": 10} ')
AS vals;
Interroger les données. La requête utilise la fonction TYPEOF pour afficher les types de données des valeurs stockées dans la colonne VARIANT.
SELECT n, v, TYPEOF(v)
FROM vartab
ORDER BY n;
+---+------------------------+------------+
| N | V | TYPEOF(V) |
|---+------------------------+------------|
| 1 | null | NULL_VALUE |
| 2 | NULL | NULL |
| 3 | true | BOOLEAN |
| 4 | -17 | INTEGER |
| 5 | 123.12 | DECIMAL |
| 6 | 1.912000000000000e+02 | DOUBLE |
| 7 | "Om ara pa ca na dhih" | VARCHAR |
| 8 | [ | ARRAY |
| | -1, | |
| | 12, | |
| | 289, | |
| | 2188, | |
| | false, | |
| | undefined | |
| | ] | |
| 9 | { | OBJECT |
| | "x": "abc", | |
| | "y": false, | |
| | "z": 10 | |
| | } | |
+---+------------------------+------------+
Afficher les valeurs ARRAY dans les données en utilisant la fonction IS_ARRAY dans une clause WHERE :
SELECT * FROM vartab WHERE IS_ARRAY(v);
+---+-------------+
| N | V |
|---+-------------|
| 8 | [ |
| | -1, |
| | 12, |
| | 289, |
| | 2188, |
| | false, |
| | undefined |
| | ] |
+---+-------------+
Utiliser la fonction IS_ARRAY dans une liste SELECT¶
Créer et remplir la table multiple_types
. L’instruction INSERT utilise la fonction TO_VARIANT pour insérer des valeurs VARIANT dans les colonnes.
CREATE OR REPLACE TABLE multiple_types (
array1 VARIANT,
array2 VARIANT,
boolean1 VARIANT,
varchar1 VARIANT,
varchar2 VARIANT,
decimal1 VARIANT,
double1 VARIANT,
integer1 VARIANT,
object1 VARIANT);
INSERT INTO multiple_types
(array1, array2, boolean1, varchar1, varchar2,
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"}')));
Interrogez les données à l’aide de la fonction TYPEOF pour afficher les types de données des valeurs stockées dans les valeurs VARIANT.
SELECT TYPEOF(array1),
TYPEOF(array2),
TYPEOF(boolean1),
TYPEOF(varchar1),
TYPEOF(varchar2),
TYPEOF(decimal1),
TYPEOF(double1),
TYPEOF(integer1),
TYPEOF(object1)
FROM multiple_types;
+----------------+----------------+------------------+------------------+------------------+------------------+-----------------+------------------+-----------------+
| TYPEOF(ARRAY1) | TYPEOF(ARRAY2) | TYPEOF(BOOLEAN1) | TYPEOF(VARCHAR1) | TYPEOF(VARCHAR2) | TYPEOF(DECIMAL1) | TYPEOF(DOUBLE1) | TYPEOF(INTEGER1) | TYPEOF(OBJECT1) |
|----------------+----------------+------------------+------------------+------------------+------------------+-----------------+------------------+-----------------|
| ARRAY | ARRAY | BOOLEAN | VARCHAR | VARCHAR | DECIMAL | DOUBLE | INTEGER | OBJECT |
+----------------+----------------+------------------+------------------+------------------+------------------+-----------------+------------------+-----------------+
Afficher si une colonne contient des valeurs ARRAY dans les données en utilisant la fonction IS_ARRAY dans une liste SELECT :
SELECT IS_ARRAY(array1),
IS_ARRAY(array2),
IS_ARRAY(boolean1)
FROM multiple_types;
+------------------+------------------+--------------------+
| IS_ARRAY(ARRAY1) | IS_ARRAY(ARRAY2) | IS_ARRAY(BOOLEAN1) |
|------------------+------------------+--------------------|
| True | True | False |
+------------------+------------------+--------------------+