RAISE(Snowflake Scripting)ยถ
์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค.
์์ธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ธ ์ฒ๋ฆฌํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฐธ๊ณ
์ด Snowflake Scripting ๊ตฌ๋ฌธ์ Snowflake Scripting ๋ธ๋ก ๋ด์์๋ง ์ ํจํฉ๋๋ค.
- ์ฐธ๊ณ ํญ๋ชฉ:
๊ตฌ๋ฌธยถ
RAISE <exception_name> ;
์ฌ๊ธฐ์:
exception_name
๋ฐ์์ํฌ ์์ธ์ ์ด๋ฆ์ ๋๋ค.
์์ธ ์ฒ๋ฆฌ๊ธฐ์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฐ์ ์์ธ๋ฅผ ๋ค์ ๋ฐ์์ํค๋ ค๋ฉด ์ด ์ธ์๋ฅผ ์๋ตํ์ญ์์ค. ์์ธ ํธ๋ค๋ฌ์์ ๊ฐ์ ์์ธ๋ฅผ ๋ค์ ๋ฐ์์ํค๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ยถ
์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋จํ ์์ธ๊ฐ ์์ฑ๋๊ณ ๋ฐ์ํฉ๋๋ค(ํฌ์ฐฉํ์ง๋ ์์).
CREATE PROCEDURE thrower()
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
DECLARE
MY_EXCEPTION EXCEPTION;
BEGIN
RAISE MY_EXCEPTION;
END;
$$
;
๋ค์์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ์ ์ฅ ํ๋ก์์ ์ ๋ํ ํธ์ถ์ ๋๋ค.
CALL thrower();
๋ค์์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์คํํ ๊ฒฐ๊ณผ์ ๋๋ค.
-20000 (P0001): Uncaught exception of type 'MY_EXCEPTION' on line 5 at position 8
๋ค์ ์๋ ์ด์ ์์ ์ ์ฌํ์ง๋ง, ์ด๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ ์ ์์ธ ๋ฒํธ ๋ฐ ์์ธ ๋ฉ์์ง๋ฅผ ์ ์ํ ์์ธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
DECLARE
MY_EXCEPTION EXCEPTION (-20002, 'Raised MY_EXCEPTION.');
๋ค์์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์คํํ ๊ฒฐ๊ณผ์ ๋๋ค.
-20002 (P0001): Uncaught exception of type 'MY_EXCEPTION' on line 7 at position 8 : Raised MY_EXCEPTION.
๋ ๋ง์ ์๋ ์์ธ ์ฒ๋ฆฌ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.