SYSTEM$GET_RESULTSET_STATUS

SYSTEM$GET_RESULTSET_STATUS

SYSTEM$GET_RESULTSET_STATUS() 함수는 Snowflake Scripting 저장 프로시저의 RESULTSET 상태를 반환해요.

이 함수는 RESULTSET에 대해 실행 중인 비동기 자식 작업의 상태를 확인하는 데 유용해요.

출처: Snowflake SQL Reference

본문

문법

SYSTEM$GET_RESULTSET_STATUS( <resultset_name> )

반환

이 함수는 RESULTSET의 상태를 VARCHAR 타입 값으로 반환해요. 가능한 상태 값은 다음과 같아요.

Status Description
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를 두 번 호출해 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;
$$;
+------------------+
| GET_QUERY_STATUS |
+------------------+
| [                |
|   "RUNNING",     |
|   "SUCCESS"      |
| ]                |
+------------------+

더 알아보기