- 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" |
| ] |
+------------------+