카테고리:

시스템 함수 (쿼리 정보)

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 를 두 번 호출하여 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"      |
| ]                |
+------------------+