์ปค์ (Cursor)
๋ ์ฝ๋ ๊ฐ๊ฐ์ ๋ํ ๊ฐ๋ณ์ ์ธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ ์งํฉ์ ํ์ฅ
*๋ช ์์ ์ปค์(Explicit Cursor)
- ์ฌ์ฉ์๊ฐ ์ง์ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ์ ๊ทผํด์ ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ช ์์ ์ผ๋ก ์ ์ธ
- ์ผ๋ฐ์ ์ผ๋ก ์ปค์๋ผ๊ณ ํ๋ฉด ๋ช ์์ ์ปค์๋ฅผ ๋งํจ
- ์ฒ๋ฆฌ์์
- DECLARE(์ปค์ ์ ์ธ) : ์ปค์์ ์ด๋ฆ์ ์ฃผ๊ณ , ์ปค์๊ฐ ์ ๊ทผํ๋ ค๋ ์ฟผ๋ฆฌ ์ ์
- OPEN(์ปค์ ์ด๊ธฐ) : ์ปค์๋ก ์ ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํ
- FETCH(ํจ์น) : ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ์ ๊ทผ
- CLOSE(์ปค์๋ซ๊ธฐ) : ์ปค์๋ฅผ ๋ซ๊ณ ์์์ ๋ฐํ
* ๋ฌต์์ ์ปค์(Implicit Cursor)
- ์ค๋ผํด ๋ด๋ถ์์ ๊ฐ๊ฐ์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ์ ๊ทผํ์ฌ ์ฌ์ฉํ๊ธฐ ์ํ ๋ด๋ถ์ ์ธ ์ปค์
- SQL ์ปค์ : ํญ์ ์ต๊ทผ์ ์คํ๋ SQL ๋ฌธ์ฅ์ ๋ํ ์ปค์
- 'SQL'์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์์ฑ์ ์ ๊ทผํ ์ ์์
- DML(INSERT, UPDATE, DELETE) ๋ฌธ์ฅ์ ๋ํด์ ์ด๋ฆผ
PL/SQL ์๋ธํ๋ก๊ทธ๋จ(subprogram)
ํ๋ก๊ทธ๋จ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ก ์ ์ฅํ๊ณ , ํ์ํ ๋๋ง๋ค ํธ์ถํด์ ์ฌ์ฉ
- ์ ์ฅ ํ๋ก์์ (stored procedure)
- ํจ์(function)
- ํจํค์ง(package)
- ํธ๋ฆฌ๊ฑฐ(trigger)
์ ์ฅ ํ๋ก์์ (Stored Procedure)
- ์ผ๋ จ์ PL/SQL ๋ฌธ์ฅ์ ์ฌ์ ์ ์์ฑํ๊ณ ์ปดํ์ผํ ๋ค์, ์คํํ ์ ์๋ ์ํ๋ก ๋ง๋ค์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ ์ฅํด๋์ ํ๋ก์์
- (์ ํ์ ) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์
- (์ ํ์ ) ๊ฐ์ ๋๋ ค์ค ์ ์์
ํจ์(Function)
- ํจ์๋ ๊ณ์ฐ์ ์ํํ์ฌ ํธ์ถํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐํํ๊ฑฐ๋ ๊ฒฐ๊ณผ์งํฉ์ ํตํฉํด ๋ฃ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- DBMS๋ ๋ฌธ์์ด ํจ์, ์ํ ํจ์, ์ง๊ณ ํจ์ ๋ฑ ๋ง์ ํธ๋ฆฌํ ํจ์๋ฅผ ์ ๊ณต
- ์ฌ์ฉ์๊ฐ ์ง์ ํจ์๋ฅผ ์ ์ํ ์ ์์
* ์ ์ฅํ๋ก์์ ์์ ์ฐจ์ด
- RETURN ๋ฌธ์ ์ํด์ ํน์ ๊ฐ์ ๋๋ ค์ฃผ๋ ๊ธฐ๋ฅ
- ๊ณ์ฐ ์ฉ๋๋ก ์ฌ์ฉํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณ๊ฒฝX
- ์ ์ฅ ํ๋ก์์ ๋ EXEC๋ก ์คํ๋์ง๋ง, ํจ์๋ ์ฃผ๋ก SELECT๋ฌธ์ ํฌํจ๋์ด ์คํ๋จ
'software engineering > ๋ฐ์ดํฐ๋ฒ ์ด์ค์ค๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] ํํฐ์ , ๋ทฐ, ์ํ์ค (Partition, View, Sequence) (0) | 2023.11.06 |
---|---|
[DB] ๋ฝ๊ณผ ๋ฐ๋๋ฝ (Dead Lock) (0) | 2023.11.06 |
[DB] ๋ฐ์ดํฐ ๋์์ฑ๊ณผ ์ผ๊ด์ฑ (0) | 2023.11.06 |
[DB] ํธ๋์ญ์ (Transaction) (0) | 2023.10.27 |
[DB] ์ธ๋ฑ์ค ์ ์ (0) | 2023.10.12 |