Debugging-Funktionen in Standard-SQL

BigQuery unterstützt die folgenden Debugging-Funktionen.

ERROR

ERROR(error_message)

Beschreibung

Gibt einen Fehler zurück. Das Argument error_message ist ein STRING.

BigQuery behandelt ERROR auf dieselbe Weise wie alle Ausdrücke, die zu einem Fehler führen können: Es gibt keine spezielle Garantie für die Auswertungsreihenfolge.

Rückgabedatentyp

BigQuery leitet den Rückgabetyp im Kontext ab.

Beispiele

Im folgenden Beispiel wird durch die Abfrage eine Fehlermeldung zurückgegeben, wenn der Wert der Zeile keinem von zwei definierten Werten entspricht.

SELECT
  CASE
    WHEN value = 'foo' THEN 'Value is foo.'
    WHEN value = 'bar' THEN 'Value is bar.'
    ELSE ERROR(concat('Found unexpected value: ', value))
  END AS new_value
FROM (
  SELECT 'foo' AS value UNION ALL
  SELECT 'bar' AS value UNION ALL
  SELECT 'baz' AS value);

Found unexpected value: baz

Im folgenden Beispiel kann BigQuery die Funktion ERROR vor oder nach der Bedingung x > 0 auswerten, da BigQuery im Allgemeinen keine feste Abfolge zwischen WHERE-Klauselbedingungen garantiert und es keine speziellen Garantien für die Funktion ERROR gibt.

SELECT *
FROM (SELECT -1 AS x)
WHERE x > 0 AND ERROR('Example error');

Im nächsten Beispiel wertet die Klausel WHERE eine IF-Bedingung aus, die dafür sorgt, dass BigQuery die Funktion ERROR nur dann auswertet, wenn die Bedingung nicht erfüllt ist.

SELECT *
FROM (SELECT -1 AS x)
WHERE IF(x > 0, true, ERROR(FORMAT('Error: x must be positive but is %t', x)));'

Error: x must be positive but is -1