- Categorias:
Funções do sistema (Informações de consulta)
SYSTEM$GET_RESULTSET_STATUS¶
Retorna o status de um RESULTSET em um procedimento armazenado do Snowflake Scripting.
Essa função pode ser útil para obter o status de um trabalho filho assíncrono que esteja sendo executado para um RESULTSET.
Sintaxe¶
SYSTEM$GET_RESULTSET_STATUS( <resultset_name> )
Argumentos¶
resultset_name
O nome do RESULTSET.
Retornos¶
Essa função retorna o status do RESULTSET em um valor do tipo VARCHAR. Os seguintes valores de status são possíveis:
Status | Descrição |
---|---|
RUNNING | A consulta ainda está em andamento. |
SUCCESS | A consulta foi concluída com sucesso. |
ABORTING | A consulta está em processo de ser cancelada no lado do servidor. |
FAILED_WITH_ERROR | A consulta foi concluída sem êxito devido a um erro na consulta. |
FAILED_WITH_INCIDENT | A consulta foi concluída sem sucesso devido a um incidente no lado do servidor. |
ABORTED | A consulta foi abortada no lado do servidor. |
QUEUED | A consulta está na fila para execução (ou seja, ainda não começou a ser executada), normalmente porque está aguardando recursos. |
DISCONNECTED | A conexão da sessão está quebrada. O estado da consulta mudará para FAILED_WITH_ERROR em breve. |
RESUMING_WAREHOUSE | O warehouse está sendo iniciado e a consulta ainda não está em execução. |
QUEUED_REPAIRING_WAREHOUSE | O warehouse está sendo reparado e a consulta está na fila para execução. |
RESTARTED | A consulta foi reiniciada. |
BLOCKED | A consulta está aguardando um bloqueio mantido por outra instrução. |
Notas de uso¶
Essa função só pode ser chamada em um bloco do Snowflake Scripting.
Exemplos¶
O exemplo a seguir chama SYSTEM$GET_RESULTSET_STATUS duas vezes para retornar o status de um trabalho filho assíncrono que está sendo executado para um RESULTSET. O exemplo chama a função enquanto o trabalho filho assíncrono está em execução e depois que ele é concluído.
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" | | ] | +------------------+