カテゴリ:

システム関数 (クエリ情報)

SYSTEM$GET_RESULTSET_STATUS

Snowflake Scriptingストアドプロシージャの RESULTSET のステータスを返します。

この関数は、 RESULTSET で実行中の 非同期子ジョブ のステータスを取得するのに便利です。

構文

SYSTEM$GET_RESULTSET_STATUS( <resultset_name> )
Copy

引数

resultset_name

RESULTSET の名前。

戻り値

この関数は、 RESULTSET のステータスを VARCHAR 型の値で返します。以下のステータス値が可能です。

ステータス

説明

RUNNING

クエリはまだ実行中です。

SUCCESS

クエリは正常に終了しました。

ABORTING

クエリはサーバー側で中止されています。

FAILED_WITH_ERROR

クエリ内にエラーがあったため、クエリが失敗しました。

FAILED_WITH_INCIDENT

サーバー側で問題が発生したため、クエリが失敗しました。

ABORTED

サーバー側でクエリが中止されました。

QUEUED

クエリは現在、実行待ちの状態です(まだ実行は開始されていません)。通常はリソースの割り当て待ちです。

DISCONNECTED

セッションの接続が切断されています。クエリの状態は間もなく FAILED_WITH_ERROR に変わります。

RESUMING_WAREHOUSE

ウェアハウスは起動していますが、クエリはまだ実行されていません。

QUEUED_REPAIRING_WAREHOUSE

ウェアハウスは修復中で、クエリは実行待ちです。

RESTARTED

クエリが再開されました。

BLOCKED

クエリは、別のステートメントによって保持されているロックを待機しています。

使用上の注意

この関数は Snowflake Scriptingブロック 内でのみ呼び出すことができます。

以下の例では、 SYSTEM$GET_RESULTSET_STATUS を2回呼び出して、 RESULTSET に対して実行中の非同期子ジョブのステータスを返します。この例では、非同期子ジョブの実行中と完了後に関数を呼び出しています。

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