- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Typprädikate)
IS_ARRAY¶
Gibt TRUE zurück, wenn das VARIANT-Argument einen ARRAY-Wert enthält.
- Siehe auch:
Syntax¶
IS_ARRAY( <variant_expr> )
Argumente¶
variant_expr
Ein Ausdruck, der einen Wert vom Typ VARIANT ergibt.
Rückgabewerte¶
Gibt einen BOOLEAN Wert oder NULL zurück.
Gibt TRUE zurück, wenn der VARIANT-Wert einen ARRAY-Wert enthält. Andernfalls wird FALSE zurückgegeben.
Wenn die Eingabe NULL ist, wird NULL ohne Meldung eines Fehlers zurückgegeben.
Nutzungshinweise¶
Diese Funktion unterstützt keine strukturierten Typen als Eingabeargument.
Beispiele¶
Die folgenden Beispiele verwenden die Funktion IS_ARRAY.
Verwenden der Funktion IS_ARRAY in einer WHERE-Klausel¶
Erstellen und füllen Sie die Tabelle vartab
. Die INSERT-Anweisung verwendet die Funktion PARSE_JSON, um VARIANT-Werte in die Spalte v
der Tabelle einzufügen.
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;
Abfragen auf den Daten ausführen Die Abfrage verwendet die Funktion TYPEOF, um die Datentypen der in der VARIANT-Spalte gespeicherten Werte anzuzeigen.
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 | |
| | } | |
+---+------------------------+------------+
Zeigen Sie die ARRAY-Werte in den Daten an, indem Sie die Funktion IS_ARRAY in einer WHERE-Klausel verwenden:
SELECT * FROM vartab WHERE IS_ARRAY(v);
+---+-------------+
| N | V |
|---+-------------|
| 8 | [ |
| | -1, |
| | 12, |
| | 289, |
| | 2188, |
| | false, |
| | undefined |
| | ] |
+---+-------------+
Verwenden der Funktion IS_ARRAY in einer SELECT-Liste¶
Erstellen und füllen Sie die Tabelle multiple_types
. Die INSERT-Anweisung verwendet die Funktion TO_VARIANT, um die Werte von VARIANT in die Spalten einzufügen.
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"}')));
Fragen Sie die Daten mit der Funktion TYPEOF ab, um die Datentypen der in VARIANT-Werten gespeicherten Werte anzuzeigen.
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 |
+----------------+----------------+------------------+------------------+------------------+------------------+-----------------+------------------+-----------------+
Zeigen Sie mit der Funktion IS_ARRAY in einer SELECT-Liste an, ob eine Spalte ARRAY-Werte in den Daten enthält:
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 |
+------------------+------------------+--------------------+