- Catégories :
Fonctions système (Informations sur la requête)
SYSTEM$GET_RESULTSET_STATUS¶
Renvoie le statut d’une valeur RESULTSET dans une procédure stockée Snowflake Scripting.
Cette fonction peut être utile pour obtenir le statut d’une tâche enfant asynchrone qui est en cours d’exécution pour un RESULTSET.
Syntaxe¶
SYSTEM$GET_RESULTSET_STATUS( <resultset_name> )
Arguments¶
resultset_name
Nom de l” RESULTSET.
Renvoie¶
Cette fonction renvoie le statut de RESULTSET dans une valeur de type VARCHAR. Les valeurs de statut suivantes sont possibles :
Statut |
Description |
---|---|
RUNNING |
La requête est toujours en cours d’exécution. |
SUCCESS |
La requête s’est terminée avec succès. |
ABORTING |
La requête est en cours d’annulation côté serveur. |
FAILED_WITH_ERROR |
La requête ne s’est pas terminée correctement en raison d’une erreur dans la requête. |
FAILED_WITH_INCIDENT |
La requête ne s’est pas terminée correctement en raison d’un incident survenu côté serveur. |
ABORTED |
La requête a été interrompue côté serveur. |
QUEUED |
La requête est mise en file d’attente pour exécution (c’est-à-dire qu’elle n’est pas encore exécutée), généralement parce qu’elle attend des ressources. |
DISCONNECTED |
La connexion de la session est interrompue. L’état de la requête basculera bientôt sur FAILED_WITH_ERROR. |
RESUMING_WAREHOUSE |
L’entrepôt est en cours de démarrage et la requête n’est pas encore exécutée. |
QUEUED_REPAIRING_WAREHOUSE |
L’entrepôt est en cours de réparation et la requête est en file d’attente pour exécution. |
RESTARTED |
La requête a redémarré. |
BLOCKED |
La requête est en attente d’un verrou détenu par une autre instruction. |
Notes sur l’utilisation¶
Cette fonction ne peut être appelée que dans un bloc de Snowflake Scripting.
Exemples¶
L’exemple suivant appelle deux fois SYSTEM$GET_RESULTSET_STATUS pour renvoyer le statut d’un job enfant asynchrone en cours d’exécution pour RESULTSET. L’exemple appelle la fonction pendant que la tâche enfant asynchrone est en cours d’exécution et une fois qu’elle est terminée.
EXECUTE IMMEDIATE $$
DECLARE
status2 VARCHAR DEFAULT 'invalid';
BEGIN
LET res RESULTSET := ASYNC (SELECT SYSTEM$WAIT(3));
LET status VARCHAR := SYSTEM$GET_RESULTSET_STATUS(res);
AWAIT res;
status2 := SYSTEM$GET_RESULTSET_STATUS(res);
RETURN [status, status2];
END;
$$;
+------------------+
| GET_QUERY_STATUS |
+------------------+
| [ |
| "RUNNING", |
| "SUCCESS" |
| ] |
+------------------+