REPEAT(Snowflake Scripting)¶
REPEAT
루프는 지정된 조건이 true일 때까지 반복됩니다. REPEAT
루프는 루프의 끝에서 조건을 테스트합니다. 이는 REPEAT
루프의 본문이 항상 적어도 한 번 실행됨을 의미합니다.
루프에 대한 자세한 내용은 루프 작업하기 섹션을 참조하십시오.
참고
이 Snowflake Scripting 구문은 Snowflake Scripting 블록 내에서만 유효합니다.
구문¶
REPEAT
<statement>;
[ <statement>; ... ]
UNTIL ( <condition> )
END REPEAT [ <label> ] ;
여기서:
사용법 노트¶
REPEAT
에서 조건을 괄호로 묶습니다. 예:REPEAT ( <조건> )
.condition
이 TRUE로 평가되지 않고 루프에 BREAK 명령(또는 이와 동등한 항목)이 포함되어 있지 않은 경우, 루프가 실행되고 크레딧을 무기한으로 소모합니다.condition
이 NULL이면 FALSE로 처리됩니다.루프는 여러 문을 포함할 수 있습니다. 이러한 문을 포함하는 BEGIN … END 블록 을 사용할 수 있지만, 반드시 사용해야 하는 것은 아닙니다.
예¶
이 예에서는 루프를 사용하여 2의 거듭제곱을 계산합니다. (이는 비효율적인 솔루션이지만, 루핑을 보여줍니다.)
CREATE PROCEDURE power_of_2()
RETURNS NUMBER(8, 0)
LANGUAGE SQL
AS
$$
DECLARE
counter NUMBER(8, 0); -- Loop counter.
power_of_2 NUMBER(8, 0); -- Stores the most recent power of 2 that we calculated.
BEGIN
counter := 1;
power_of_2 := 1;
REPEAT
power_of_2 := power_of_2 * 2;
counter := counter + 1;
UNTIL (counter > 8)
END REPEAT;
RETURN power_of_2;
END;
$$;
다음은 저장 프로시저를 실행한 결과입니다.
CALL power_of_2();
+------------+
| POWER_OF_2 |
|------------|
| 256 |
+------------+