์์ธ๋?
PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์๋๋ ์๋ฌ๋ฅผ ์์ธ๋ผ ํ๋ค.
์ปดํ์ผ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ํ์ฑ๋ ๋ ์ฌ์ฉ์ ์คํ,๊ตฌ๋ฌธ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์๋๋ ์๋ฌ
๋ฐํ์ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์ํ๋ ์๋ฌ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์ ์๋ฌ๋ฅผ
Exception์ด๋ผ ๋ถ๋ฅธ๋ค.
์ค๋ผํด ์์ธ ๋ฏธ๋ฆฌ ์ ์๋ ์ค๋ผํด ์์ธ, PL/SQL ์ฝ๋์์ ์์ฃผ ๋ฐ์ํ๋ ERROR์ ๋ฏธ๋ฆฌ ์ ์
๋ฏธ๋ฆฌ ์ ์๋์ง ์์ ์์ธ,๊ธฐํ ํ์ค(์ฌ์ฉ์๊ฐ ์ ์ธํ๊ณ ์ค๋ผํด ์๋ฒ๊ฐ ์์์ ์ผ๋ก ๋ฐ์)์ฌ์ฉ์ ์ ์ ์์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ํ ์กฐ๊ฑด์ด ๋ง์กฑ๋์ง ์์ ๊ฒฝ์ฐ(์ฌ์ฉ์๊ฐ ์ ์ธํ๊ณ ๋ช ์์ ์ผ๋ก ๋ฐ์ํ๋ค.)
DECLARE
vNAME VARCHAR2(30);
vSal NUMBER;
BEGIN
--SELECT name,sal INTO vName, vSal FROM emp WHERE empNo = '1001';
--SELECT name,sal INTO vName, vSal FROM emp WHERE empNo = '8001';
SELECT name,sal INTO vName, vSal FROM emp;
DBMS_OUTPUT.PUT_LINE(vName ||':'|| vSal);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('์กด์ฌํ์ง ์๋ ๋ฐ์ดํฐ');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('๋๊ฐ ์ด์ ์กด์ฌ');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('๊ธฐํ ์์ธ ๋ฐ์');
END;
/
-- ์ฌ์ฉ์ ์ ์ ์์ธ
DECLARE
vNAME VARCHAR2(30);
vSal NUMBER;
emp_sal_check EXCEPTION;
BEGIN
SELECT name, sal INTO vName, vSal FROM emp WHERE empNo = '1001';
IF vSal >= 3000000 THEN
RAISE emp_sal_check; -- ์์ธ ๋ฐ์
END IF;
DBMS_OUTPUT.PUT_LINE(vName || ':' || vSal);
EXCEPTION
WHEN emp_sal_check THEN
DBMS_OUTPUT.PUT_LINE('๊ธ์ฌ๊ฐ 300๋ง์ ์ด์์
๋๋ค');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('๊ธฐํ ์์ธ ๋ฐ์');
END;
/
'๐ป > ORACLE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(30)[ORACLE] 13์ผ์ฐจ : ์ธ๋ฑ์ค(INDEX) (1) | 2024.03.27 |
---|---|
(29)[ORACLE] 12์ผ์ฐจ : PL/SQL - 5 (ํธ๋ฆฌ๊ฑฐ ๋ฐ ํจํค์ง) (1) | 2024.03.27 |
(29)[ORACLE] 12์ผ์ฐจ : PL/SQL - 3 (์ปค์์ ๋์ ์ฟผ๋ฆฌ) (0) | 2024.03.26 |
(28)[ORACLE] 11์ผ์ฐจ : PL/SQL - 2 (0) | 2024.03.25 |
(28)[ORACLE] 11์ผ์ฐจ : PL/SQL (1) | 2024.03.25 |