๐ปProgramming
![[PL/SQL] ์์ธ(Exception) ์ฒ๋ฆฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb2XAaZ%2FbtrJWrs2uCf%2FAAAAAAAAAAAAAAAAAAAAAJ8VJlLXO6e-CymelZjKEzHqjtOa7dmTkeIdetUXEBXy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DeTQWnkM%252B1OFpOh32pnaz3Hg9Iy4%253D)
[PL/SQL] ์์ธ(Exception) ์ฒ๋ฆฌ
PL/SQL์์๋ ์๋ฐ์ ๊ฐ์ด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์์ธ๋? PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์์ ๋ฐ์๋๋ ์๋ฌ๋ฅผ ์์ธ๋ผ ํจ ์๋ฌ ์ข ๋ฅ แ์ปดํ์ผ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ํ์ฑ(Parsing)๋ ๋ ์ฌ์ฉ์ ์คํ, ๊ตฌ๋ฌธ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์๋๋ ์๋ฌ แ๋ฐํ์ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์ํ๋ ์๋ฌ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์์๋ฌ๋ฅผ Exception ๋ฏธ๋ฆฌ ์ ์๋ ์์ธ ์ฌ์ฉ์ ์ ์ ์์ธ ์ฌ์ฉ์๊ฐ ์ง์ ์์ธ๋ฅผ ์ ์ํ๊ณ ์ฒ๋ฆฌํ ๋ก์ง์ ์์ฑ DECLARE -- ์์ธ์ ์ธ -- ์์ธ ์ด๋ฆ EXCEPTION; BEGIN -- ์์ธ ๋ฐ์ -- RAISE ์์ธ ์ด๋ฆ; EXCEPTION WHEN ์์ธ1(์ฌ์ ์ ์๋ ์ค๋ฅ ๋๋ ์ฌ์ฉ์ ์ ์ ์ค๋ฅ) THEN STATEMENT1 ... WHEN ์์ธ2(์ฌ์ ์ ์๋ ์ค..
[PL/SQL] ์ปค์(Cursor)
์ปค์(Cursor) ํ๋์ ๋ ์ฝ๋๊ฐ ์๋ ์ฌ๋ฌ ๋ ์ฝ๋๋ก ๊ตฌ์ฑ๋ ์์ ์์ญ์์ SQL๋ฌธ์ ์คํํ๊ณ ๊ทธ ๊ณผ์ ์ ์๊ธด ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ ์ปค์์ ์ข ๋ฅ แ์์์ ์ปค์ : ๋ชจ๋ DML๊ณผ PL/SQL SELECT๋ฌธ์ ๋ํด ์ ์ธ แ๋ช ์์ ์ปค์ : ํ๋ก๊ทธ๋๋จธ์ ์ํด ์ ์ธ๋๋ฉฐ ์ด๋ฆ์ด ์๋ ์ปค์์ด๋ค ์์์ ์ปค์ ์ค๋ผํด์ด๋ PL/SQL์คํ ๋ฉ์ปค๋์ฆ์ ์ํด ์ฒ๋ฆฌ๋๋ SQL๋ฌธ์ฅ์ด ์ฒ๋ฆฌ๋๋ ๊ณณ์ ๋ํ ์ต๋ช ์ ์ฃผ์ ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์คํ๋๋ ๋ชจ๋ SQL๋ฌธ์ฅ์ ์์์ ์ธ ์ปค์๊ฐ ์์ฑ๋๋ฉฐ, ์ปค์ ์์ฑ์ ์ฌ์ฉ SQL ๋ฌธ์ด ์คํ๋๋ ์๊ฐ ์๋์ผ๋ก OPEN๊ณผ CLOSE ์์์ ์ปค์ ์์ฑ - SQL%ROWCOUNT : ํด๋น SQL ๋ฌธ์ ์ํฅ์ ๋ฐ๋ ํ์ ์ -SQL%FOUND:ํด๋นSQL์ํฅ์๋ฐ๋ํ์์๊ฐ1๊ฐ์ด์์ผ๊ฒฝ์ฐTRUE - SQ..
[PL/SQL] ์ฌ์ฉ์ ์ ์ ํจ์
์ฌ์ฉ์ ์ ์ ํจ์ ์ฌ์ฉ์๊ฐ ์ง์ ๋ก์ง์ ๊ตฌํํ์ฌ ๊ตฌํํ ํจ์ ๋ด์ฅ ํจ์(๋นํธ์ธ ํจ์)์ฒ๋ผ ์ฟผ๋ฆฌ์์ ํธ์ถํ๊ฑฐ๋ EXECUTE ๋ฌธ ์ ํตํด ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํจ ํจํค์ง ๋ด์์ ์ฌ์ฉ์ ์ ์ ํจ์๋ ์ค๋ณต ์ ์๊ฐ ๊ฐ๋ฅ ํ๋ก์์ ๋ ํน์ ํ ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์์ ์ฌ์ฉ์ ์ ์ ํจ์ ์ ๋ณด ํ์ธ SELECT * FROM user_procedures WHERE OBJECT_TYPE = ‘FUNCTION'; โ๏ธ USER_PROCEDURES ์ฌ์ฉ์ ์ ์ ํจ์์ ๋ชฉ๋ก์ ํ์ธ โ๏ธ USER_SOURCE ์ฌ์ฉ์ ์ ์ ํจ์์ ์์ค๋ฅผ ํ์ธ ์ฌ์ฉ์ ์ ์ ํจ์ ์์ฑ CREATE [ OR REPLACE ] FUNCTION function_name [ ( parameter ๋ฐ์ดํฐํ์ [ ,parameter ๋ฐ์ดํฐํ์ ... ] ..
[PL/SQL] ํ๋ก์์
ํ๋ก์์ ์์ฃผ ์คํํด์ผ ํ๋ ์ ๋ฌด ํ๋ฆ(SQL)์ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ํ ๋๋ง๋ค ํธ์ถํ์ฌ ์คํ ํน์ ํ ๋ก์ง ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐํโโโ ์ ๋์ ์ผ๋ก ์ปค๋ฐ์ด ํ์ํจ ํ๋ก์์ ํน์ง ํ ์ด๋ธ์ ์ญ์ ํด๋ ์ฐ๊ด๋ ํ๋ก์์ ์ญ์ โ ํ ์ด๋ธ์ด ์ญ์ ๋ ์ํ์์ ์ฐ๊ด๋ ํ๋ก์์ ๋ฅผ ์คํ ํ๋ฉด ์ค๋ฅ ๋ฐ์ ํ๋ผ๋ฏธํฐ IN ํ๋ก์์ ์๊ฒ ๊ฐ์ ๋๊ฒจ์ค ๋ ์ฌ์ฉํจ OUT ์๋ฐ์๋ ์๋ ๊ฐ๋ ์ผ๋ก ํ๋ก์์ ๊ฐ ์คํํ ๊ฒฐ๊ณผ๋ฅผ ๋๋๋ ค ๋ฐ์ ๋ INOUT IN๊ณผ OUT์ ๊ฒฐํฉํ ๊ฐ๋ ํ๋ก์์ ์์ฑ CREATE OR REPLACE PROCEDURE ํ๋ก์์ ์ด๋ฆ IS --ํ๋ก์์ ๋ด์์ ์ฌ์ฉํ ๋ณ์ ๋ณ์์ด๋ฆ ๋ฐ์ดํฐํ์ ; ๋ณ์์ด๋ฆ ๋ฐ์ดํฐํ์ ; BEGIN ๊ธฐ๋ฅ ๊ตฌํ,์ฒ๋ฆฌ ์์ฑ; [EXCEPTION] END [ํ๋ก์์ ์ด๋ฆ]; โ๏ธ ..