SYSTEM$GET_RESULTSET_STATUS
SYSTEM$GET_RESULTSET_STATUS
SYSTEM$GET_RESULTSET_STATUS() 함수는 Snowflake Scripting 저장 프로시저의 RESULTSET 상태를 반환해요.
이 함수는 RESULTSET에 대해 실행 중인 비동기 자식 작업의 상태를 확인하는 데 유용해요.
본문
문법
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" |
| ] |
+------------------+