BREAK(Snowflake Scripting)ยถ

BREAK (๋˜๋Š” EXIT)๋Š” ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๋ฃจํ”„ ์ข…๋ฃŒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฃจํ”„ ์ข…๋ฃŒํ•˜๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ 

์ด Snowflake Scripting ๊ตฌ๋ฌธ์€ Snowflake Scripting ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ:

CONTINUE

๊ตฌ๋ฌธยถ

{ BREAK | EXIT } [ <label> ] ;
Copy

์—ฌ๊ธฐ์„œ:

label

์„ ํƒ์  ๋ ˆ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ๊ฒฝ์šฐ BREAK ๋Š” ๋ ˆ์ด๋ธ” ๋ฐ”๋กœ ๋’ค์— ์žˆ๋Š” ๋ฌธ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์ฒฉ ๋ฃจํ”„ ๋˜๋Š” ์ค‘์ฒฉ ๋ถ„๊ธฐ์˜ ๋‘˜ ์ด์ƒ์˜ ์ˆ˜์ค€์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ• ๋…ธํŠธยถ

  • BREAK ์™€ EXIT ๋Š” ๋™์˜์–ด์ž…๋‹ˆ๋‹ค.

  • ๋ฃจํ”„๊ฐ€ ๋‹ค๋ฅธ ๋ฃจํ”„์— ํฌํ•จ๋œ ๊ฒฝ์šฐ, BREAK ์˜ ์ผ๋ถ€๋กœ์„œ ๋‘˜๋Ÿฌ์‹ธ๋Š” ๋ฃจํ”„์˜ ๋ ˆ์ด๋ธ”์„ ํฌํ•จํ•จ์œผ๋กœ์จ ํ˜„์žฌ ๋ฃจํ”„๋ฟ ์•„๋‹ˆ๋ผ ๋‘˜๋Ÿฌ์‹ธ๋Š” ๋ฃจํ”„์—์„œ๋„ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋ณด๋ ค๋ฉด ์•„๋ž˜์˜ ์˜ˆ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆยถ

๋‹ค์Œ์€ BREAK ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋ฃจํ”„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‘˜๋Ÿฌ์‹ธ๋Š” ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

DECLARE
  i INTEGER;
  j INTEGER;
BEGIN
  i := 1;
  j := 1;
  WHILE (i <= 4) DO
    WHILE (j <= 4) DO
      -- Exit when j is 3, even if i is still 1.
      IF (j = 3) THEN
        BREAK outer_loop;
      END IF;
      j := j + 1;
    END WHILE inner_loop;
    i := i + 1;
  END WHILE outer_loop;
  -- Execution resumes here after the BREAK executes.
  RETURN i;
END;
Copy

์ฐธ๊ณ : Python Connector ์ฝ”๋“œ์—์„œ Snowflake CLI, SnowSQL, Classic Console, ๋˜๋Š” execute_stream ๋˜๋Š” execute_string ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ˆ์ œ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(Snowflake CLI, SnowSQL, Classic Console ๋ฐ Python Connector์—์„œ Snowflake Scripting ์‚ฌ์šฉํ•˜๊ธฐ ์ฐธ์กฐ).

EXECUTE IMMEDIATE $$
    DECLARE
        i INTEGER;
        j INTEGER;
    BEGIN
        i := 1;
        j := 1;
        WHILE (i <= 4) DO
            WHILE (j <= 4) DO
                -- Exit when j is 3, even if i is still 1.
                IF (j = 3) THEN
                     BREAK outer_loop;
                END IF;
                j := j + 1;
            END WHILE inner_loop;
            i := i + 1;
        END WHILE outer_loop;
        -- Execution resumes here after the BREAK executes.
        RETURN i;
    END;
$$;
Copy
+-----------------+
| anonymous block |
|-----------------|
|               1 |
+-----------------+