RAISE(Snowflake Scripting)ยถ

์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ 

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

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

EXCEPTION

๊ตฌ๋ฌธยถ

RAISE <exception_name> ;
Copy

์—ฌ๊ธฐ์„œ:

exception_name

๋ฐœ์ƒ์‹œํ‚ฌ ์˜ˆ์™ธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฐ™์€ ์˜ˆ์™ธ๋ฅผ ๋‹ค์‹œ ๋ฐœ์ƒ์‹œํ‚ค๋ ค๋ฉด ์ด ์ธ์ž๋ฅผ ์ƒ๋žตํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ๊ฐ™์€ ์˜ˆ์™ธ๋ฅผ ๋‹ค์‹œ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆยถ

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ„๋‹จํ•œ ์˜ˆ์™ธ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(ํฌ์ฐฉํ•˜์ง€๋Š” ์•Š์Œ).

CREATE PROCEDURE thrower()
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
    DECLARE
        MY_EXCEPTION EXCEPTION;
    BEGIN
        RAISE MY_EXCEPTION;
    END;
$$
;
Copy

๋‹ค์Œ์€ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ €์žฅ ํ”„๋กœ์‹œ์ €์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค.

CALL thrower();
Copy

๋‹ค์Œ์€ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

-20000 (P0001): Uncaught exception of type 'MY_EXCEPTION' on line 5 at position 8

๋‹ค์Œ ์˜ˆ๋Š” ์ด์ „ ์˜ˆ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ •์˜ ์˜ˆ์™ธ ๋ฒˆํ˜ธ ๋ฐ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•œ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    DECLARE
        MY_EXCEPTION EXCEPTION (-20002, 'Raised MY_EXCEPTION.');
Copy

๋‹ค์Œ์€ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

-20002 (P0001): Uncaught exception of type 'MY_EXCEPTION' on line 7 at position 8 : Raised MY_EXCEPTION.

๋” ๋งŽ์€ ์˜ˆ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์˜ˆ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.