LOOP(Snowflake Scripting)¶
LOOP
루프는 반복 횟수나 종료 조건을 지정하지 않습니다. 사용자는 루프 내에서 BREAK 또는 RETURN 을 사용하여 명시적으로 루프를 종료해야 합니다.
루프에 대한 자세한 내용은 루프 작업하기 섹션을 참조하십시오.
참고
이 Snowflake Scripting 구문은 Snowflake Scripting 블록 내에서만 유효합니다.
구문¶
LOOP
<statement>;
[ <statement>; ... ]
END LOOP [ <label> ] ;
여기서:
사용법 노트¶
LOOP
는BREAK
또는RETURN
이 실행될 때까지 반복됩니다.BREAK
또는RETURN
명령은 거의 항상 조건식(예:IF
또는CASE
) 안에 있습니다.루프는 여러 문을 포함할 수 있습니다. 이러한 문을 포함하는 BEGIN … END 블록 을 사용할 수 있지만, 반드시 사용해야 하는 것은 아닙니다.
예¶
이 루프는 예측 가능한 테스트 데이터를 테이블에 삽입합니다.
CREATE TABLE dummy_data (ID INTEGER);
CREATE PROCEDURE break_out_of_loop()
RETURNS INTEGER
LANGUAGE SQL
AS
$$
DECLARE
counter INTEGER;
BEGIN
counter := 0;
LOOP
counter := counter + 1;
IF (counter > 5) THEN
BREAK;
END IF;
INSERT INTO dummy_data (ID) VALUES (:counter);
END LOOP;
RETURN counter;
END;
$$
;
다음은 저장 프로시저를 실행한 결과입니다.
CALL break_out_of_loop();
+-------------------+
| BREAK_OUT_OF_LOOP |
|-------------------|
| 6 |
+-------------------+
저장 프로시저를 호출한 후 테이블의 내용은 다음과 같습니다.
SELECT *
FROM dummy_data
ORDER BY ID;
+----+
| ID |
|----|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+----+