Debugging-Funktionen

Cloud Spanner SQL unterstützt die folgenden Fehlerbehebungsfunktionen.

ERROR

ERROR(error_message)

Beschreibung

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

Cloud Spanner SQL behandelt ERROR auf die gleiche Weise wie alle Ausdrücke, die zu einem Fehler führen können. Es gibt keine spezielle Garantie für die Auswertungsreihenfolge.

Rückgabedatentyp

Cloud Spanner SQL 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 Cloud Spanner SQL die Funktion ERROR vor oder nach der Bedingung x > 0 auswerten, da Cloud Spanner SQL im Allgemeinen keine Reihenfolge 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 die Bedingung IF aus. Sie sorgt dafür, dass Cloud Spanner SQL 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