Kategorien:

Systemfunktionen (Abfrageinformationen)

SYSTEM$GET_RESULTSET_STATUS

Gibt den Status eines RESULTSET in einer gespeicherten Snowflake Scripting-Prozedur zurück.

Diese Funktion kann nützlich sein, um den Status eines asynchronen untergeordneten Jobs zu ermitteln, der für ein RESULTSET ausgeführt wird.

Syntax

SYSTEM$GET_RESULTSET_STATUS( <resultset_name> )
Copy

Argumente

resultset_name

Der Name der RESULTSET.

Rückgabewerte

Diese Funktion gibt den Status des RESULTSET in einem Wert vom Typ VARCHAR zurück. Die folgenden Statuswerte sind möglich:

Status

Beschreibung

RUNNING

Die Abfrage wird noch ausgeführt.

SUCCESS

Die Abfrage wurde erfolgreich abgeschlossen.

ABORTING

Die Abfrage wird auf Serverseite gerade abgebrochen.

FAILED_WITH_ERROR

Die Abfrage wurde aufgrund eines Fehlers in der Abfrage erfolglos beendet.

FAILED_WITH_INCIDENT

Die Abfrage wurde aufgrund eines Vorfalls auf der Serverseite erfolglos beendet.

ABORTED

Die Abfrage wurde auf der Serverseite abgebrochen.

QUEUED

Die Abfrage steht in der Warteschlange für die Ausführung (d. h. sie wurde noch nicht gestartet), in der Regel, da sie auf Ressourcen wartet.

DISCONNECTED

Die Verbindung der Sitzung ist unterbrochen. Der Status der Abfrage wird bald in FAILED_WITH_ERROR geändert.

RESUMING_WAREHOUSE

Das Warehouse wird gestartet und die Abfrage läuft noch nicht.

QUEUED_REPAIRING_WAREHOUSE

Das Warehouse wird repariert und die Abfrage steht in der Warteschlange zur Ausführung.

RESTARTED

Die Abfrage wurde neu gestartet.

BLOCKED

Die Abfrage wartet auf eine Sperre, die von einer anderen Anweisung gehalten wird.

Nutzungshinweise

Diese Funktion kann nur in einem Snowflake Scripting-Block aufgerufen werden.

Beispiele

Das folgende Beispiel ruft SYSTEM$GET_RESULTSET_STATUS zweimal auf, um den Status eines asynchronen untergeordneten Jobs zurückzugeben, der für ein RESULTSET läuft. Das Beispiel ruft die Funktion auf, während der asynchrone untergeordnete Job ausgeführt wird und nachdem er abgeschlossen ist.

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