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> )
Copy

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;
$$;
Copy
+------------------+
| GET_QUERY_STATUS |
+------------------+
| [                |
|   "RUNNING",     |
|   "SUCCESS"      |
| ]                |
+------------------+