Déboguer des fonctions en langage SQL standard

BigQuery est compatible avec les fonctions de débogage suivantes :

ERROR

ERROR(error_message)

Description

Renvoie une erreur. L'argument error_message est de type STRING.

BigQuery traite la fonction ERROR de la même manière que toute expression pouvant entraîner une erreur : aucune garantie particulière n'est donnée quant à l'ordre d'évaluation suivi.

Type de données renvoyé

BigQuery infère le type renvoyé en contexte.

Exemples

Dans l'exemple suivant, la requête renvoie un message d'erreur si la valeur de la ligne ne correspond pas à l'une des deux valeurs définies.

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

Dans l'exemple suivant, BigQuery est susceptible d'évaluer la fonction ERROR avant ou après la condition x > 0, car il ne fournit généralement aucune garantie de tri pour les conditions de clause WHERE. En outre, il n'existe aucune garantie particulière pour la fonction ERROR.

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

Dans l'exemple qui suit, la clause WHERE évalue une condition IF, ce qui garantit que BigQuery n'évaluera la fonction ERROR que si la condition échoue.

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
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.