PL/SQL์์๋ ์๋ฐ์ ๊ฐ์ด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
์์ธ๋?
PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์์ ๋ฐ์๋๋ ์๋ฌ๋ฅผ ์์ธ๋ผ ํจ
์๋ฌ ์ข ๋ฅ
แ์ปดํ์ผ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ํ์ฑ(Parsing)๋ ๋ ์ฌ์ฉ์ ์คํ, ๊ตฌ๋ฌธ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์๋๋ ์๋ฌ
แ๋ฐํ์ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์ํ๋ ์๋ฌ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์์๋ฌ๋ฅผ Exception
๋ฏธ๋ฆฌ ์ ์๋ ์์ธ

์ฌ์ฉ์ ์ ์ ์์ธ
์ฌ์ฉ์๊ฐ ์ง์ ์์ธ๋ฅผ ์ ์ํ๊ณ ์ฒ๋ฆฌํ ๋ก์ง์ ์์ฑ
DECLARE
-- ์์ธ์ ์ธ
-- ์์ธ ์ด๋ฆ EXCEPTION;
BEGIN
-- ์์ธ ๋ฐ์
-- RAISE ์์ธ ์ด๋ฆ;
EXCEPTION
WHEN ์์ธ1(์ฌ์ ์ ์๋ ์ค๋ฅ ๋๋ ์ฌ์ฉ์ ์ ์ ์ค๋ฅ) THEN
STATEMENT1 ...
WHEN ์์ธ2(์ฌ์ ์ ์๋ ์ค๋ฅ ๋๋ ์ฌ์ฉ์ ์ ์ ์ค๋ฅ) THEN
STATEMENT2 ...
WHEN OTHERS THEN
STATEMENT3 ...
END;
1 ์์ธ์ ์
์ฌ์ฉ์ ์ ์ ์์ธ๋ ์ ์ธ๋ถ์์ ๋ค์์ ํ์์ผ๋ก ์์ธ๋ฅผ ์ ์
exception_name EXCEPTION;
2 ์์ธ ๋ฐ์
์์คํ ์์ธ๋ ์๋์ผ๋ก ๋ฐ์๋์ง๋ง ์ฌ์ฉ์ ์ ์ ์์ธ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค์ ํ์์ผ๋ก ์์ธ๋ฅผ ๋ฐ์
RAISE exception_name;
3 ๋ฐ์๋ ์์ธ ์ฒ๋ฆฌ
๋ฐ์๋ ์์ธ๋ EXCEPTION ์ ์์ ์ฒ๋ฆฌ
EXCEPTION WHEN exception_name THEN ...;
RAISE ํ๋ก์์
แ์ฌ์ฉ์ ์ ์ ์์ธ๋ฅผ ๋ฐ์ํ๊ฑฐ๋ ๋ฏธ๋ฆฌ ์ ์๋ ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
RAISE exception_name;
RAISE_APPLICATION_ERROR ํ๋ก์์
แ์์คํ ํจํค์ง์ ํฌํจ๋ ํ๋ก์์ ๋ก ์ฌ์ฉ์ ์ ์ ์์ธ๋ง ๋ฐ์์ํฌ ์ ์๋ค.
RAISE_APPLICATION_ERROR(error_number, error_message);
RAISE_APPLICATION_ERROR(error_number, error_message, keep_errors);
โ๏ธ-20999~-20000 ์ฌ์ด์ ์ ์ฌ์ฉํ๋ค.
โ๏ธ error_message : ์ถ๋ ฅํ ๋ฉ์์ง
'๐ปProgramming > ๐ฝOracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ์ค๊ณ (0) | 2022.08.19 |
---|---|
[PL/SQL] ์ธ๋ฑ์ค (0) | 2022.08.18 |
[PL/SQL] ์ปค์(Cursor) (0) | 2022.08.18 |
[PL/SQL] ์ฌ์ฉ์ ์ ์ ํจ์ (0) | 2022.08.18 |
[PL/SQL] ํ๋ก์์ (0) | 2022.08.17 |