λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“š Database/Oracle

[Oracle] ν•¨μˆ˜(Function)와 ν”„λ‘œμ‹œμ €(Procedure) 차이

by Fomagran πŸ’» 2022. 3. 5.
728x90
λ°˜μ‘ν˜•

 

μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€.

 

μ§€λ‚œ 글듀에 ν”„λ‘œμ‹œμ €μ™€ ν•¨μˆ˜μ— λŒ€ν•΄ μ •λ¦¬ν–ˆμ—ˆλŠ”λ°μš”.

 

μ–Έλœ» 보기엔 ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €κ°€ 거의 λ˜‘κ°™λ‹€κ³  μƒκ°λ˜λ”λΌκ΅¬μš”.

 

(ν•¨μˆ˜ 글은 μ—¬κΈ° μ—μ„œ ν”„λ‘œμ‹œμ € 글을 μ—¬κΈ° μ—μ„œ ν™•μΈν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.)

 

κ·Έλž˜μ„œ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이점이 μ–΄λ–€ 것이 μžˆλŠ”μ§€ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄λ €κ³  글을 μ •λ¦¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~


ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이

 

ν”„λ‘œμ‹œμ € λ˜ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ 값을 λ°˜ν™˜ν•  수 있고,

 

ν•¨μˆ˜ λ˜ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ 값을 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

ν•˜μ§€λ§Œ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €κ°€ λ˜‘κ°™μ€ 것은 μ•„λ‹Œλ°μš”.

 

μ§€κΈˆλΆ€ν„° ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이점에 λŒ€ν•΄μ„œ λ‚˜μ—΄ν•˜κ² μŠ΅λ‹ˆλ‹€.


의미

 

ν”„λ‘œμ‹œμ €

 

일련의 쿼리λ₯Ό 마치 ν•˜λ‚˜μ˜ ν•¨μˆ˜μ²˜λŸΌ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 쿼리의 집합이며, μΌλ ¨μ˜ μž‘μ—…μ„ μ •λ¦¬ν•œ μ ˆμ°¨μž…λ‹ˆλ‹€.

 

보톡 λ‹¨λ…μœΌλ‘œ μ‹€ν–‰ν•΄μ•Ό ν•  μž‘μ—…μ„ μœ„μž„λ°›μ•˜μ„ λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

 

ν•¨μˆ˜

 

ν•˜λ‚˜μ˜ νŠΉλ³„ν•œ λͺ©μ μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ λ…λ¦½μ μœΌλ‘œ μ„€κ³„λœ μ½”λ“œμ˜ μ§‘ν•©μž…λ‹ˆλ‹€.

 

즉, ν•¨μˆ˜κ°€ μ—¬λŸ¬ μž‘μ—…μ„ μœ„ν•œ κΈ°λŠ₯이라면 ν”„λ‘œμ‹œμ €λŠ” μž‘μ—…μ„ μ •λ¦¬ν•œ μ ˆμ°¨μž…λ‹ˆλ‹€.

 

보톡 λ‘œμ§μ„ λ„μ™€μ£ΌλŠ” 역할이며, κ°„λ‹¨ν•œ 계산, 수치 등을 λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.


λ§€κ°œλ³€μˆ˜

 

ν”„λ‘œμ‹œμ €

 

λ§€κ°œλ³€μˆ˜λ₯Ό μž…λ ₯,좜λ ₯,μž…μΆœλ ₯ ν˜•μ‹μœΌλ‘œ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

 

ν•¨μˆ˜

 

λ§€κ°œλ³€μˆ˜λ₯Ό μž…λ ₯ ν˜•μ‹μœΌλ‘œλ§Œ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.


λ°˜ν™˜κ°’

 

ν”„λ‘œμ‹œμ €

 

λ°˜ν™˜κ°’μ„ κ°€μ§ˆ μˆ˜λ„ 있고 가지지 μ•Šμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

 

ν•¨μˆ˜

 

λ°˜ν™˜κ°’μ„ λ°˜λ“œμ‹œ κ°€μ Έμ•Ό ν•©λ‹ˆλ‹€.


쿼리문 λ‚΄μ—μ„œ μ‹€ν–‰κ°€λŠ₯

 

ν”„λ‘œμ‹œμ €

 

SELECT,WHERE λ¬Έ λ“±μ—μ„œ μ‚¬μš© λΆˆκ°€ν•©λ‹ˆλ‹€.

 

ν•¨μˆ˜

 

SELECT,WHERE λ¬Έ λ“±μ—μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.


처리 μž₯μ†Œ

 

ν”„λ‘œμ‹œμ €

 

ν΄λΌμ΄μ–ΈνŠΈ(ν™”λ©΄)μ—μ„œ 값을 건넀받아 μ„œλ²„μ—μ„œ μž‘μ—…μ„ ν•œ λ’€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.

 

즉, μ„œλ²„μ—μ„œ 싀행이 λ˜μ–΄ μ†λ„λ©΄μ—μ„œ λΉ λ₯Έ μ„±λŠ₯을 λ³΄μ—¬μ€λ‹ˆλ‹€.

 

ν•¨μˆ˜

 

ν΄λΌμ΄μ–ΈνŠΈ(ν™”λ©΄)μ—μ„œ 값을 건넀 λ°›κ³  μ„œλ²„μ—μ„œ ν•„μš”ν•œ 값을 κ°€μ Έμ™€μ„œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μž‘μ—…μ„ ν•˜κ³  λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

즉, ν΄λΌμ΄μ–ΈνŠΈ(ν™”λ©΄)μ—μ„œ 싀행이 λ˜μ–΄ ν”„λ‘œμ‹œμ €λ³΄λ‹¨ 속도가 λŠλ¦½λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€