Funciones de depuración

SQL de Cloud Spanner admite las siguientes funciones de depuración.

ERROR

ERROR(error_message)

Descripción

Muestra un error. El argumento error_message es un STRING.

SQL de Cloud Spanner trata ERROR de la misma manera que cualquier expresión que pueda generar un error: no existe una garantía especial de orden de evaluación.

Tipo de datos mostrados

SQL de Cloud Spanner infiere el tipo de datos que se muestra en contexto.

Ejemplos

En el siguiente ejemplo, la consulta muestra un mensaje de error si el valor de la fila no coincide con uno de los dos valores definidos.

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

En el siguiente ejemplo, SQL de Cloud Spanner puede evaluar la función ERROR antes o después de la condición x > 0, porque SQL de Cloud Spanner generalmente no ofrece garantías de pedido entre condiciones de la cláusula WHERE, y no hay garantías especiales para la función ERROR.

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

En el siguiente ejemplo, la cláusula WHERE evalúa una condición IF, que garantiza que SQL de Cloud Spanner solo evalúe la función ERROR si la condición falla.

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