λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
728x90
λ°˜μ‘ν˜•

pl/sql7

[Oracle] νŒ¨ν‚€μ§€(Package)λž€? (feat. C.R.U.D) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ—¬λŸ¬ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €λ₯Ό λ¬Άμ–΄μ„œ μ‚¬μš©ν•  수 μžˆλŠ” νŒ¨ν‚€μ§€μ— λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ νŒ¨ν‚€μ§€(Package)λž€? νŒ¨ν‚€μ§€λŠ” ν”„λ‘œμ‹œμ € λ˜λŠ” ν•¨μˆ˜ λ“± μ„œλΈŒ ν”„λ‘œκ·Έλž¨μ„ ν•˜λ‚˜λ‘œ 묢어놓은 κ°μ²΄μž…λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ μˆ˜ν•™μ— κ΄€ν•œ ν•¨μˆ˜λ“€μ„ λͺ¨μ•„ 놓은 MATHλΌλŠ” νŒ¨ν‚€μ§€κ°€ 있고 κ·Έ μ•ˆμ— 연산을 ν•˜λŠ” ν•¨μˆ˜ λ˜λŠ” ν”„λ‘œμ‹œμ € 등이 μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€. νŒ¨ν‚€μ§€λŠ” μ»΄νŒŒμΌμ„ κ±°μ³μ„œ μ‹€ν–‰λ˜λ©°, λ‹€λ₯Έ νŒ¨ν‚€μ§€λ₯Ό μ°Έμ‘°,μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μž₯점 λͺ¨λ“ˆν™” ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ € λ“± μ„œλΈŒ ν”„λ‘œκ·Έλž¨μ„ ν•œ 곳에 λͺ¨μ•„μ„œ μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ 관리 및 μ‚¬μš©ν•˜κΈ°κ°€ μˆ˜μ›”ν•©λ‹ˆλ‹€. μΊ‘μŠν™” μ„ μ–ΈλΆ€λ§Œ 외뢀에 곡개되고, 본문은 감좰져 있기 λ•Œλ¬Έμ— 접근을 μ œμ–΄ν•˜μ—¬ μ˜€μš©μ„ λ°©μ§€ν•©λ‹ˆλ‹€. μ„±λŠ₯ νŒ¨ν‚€μ§€μ˜ μ„œλΈŒ ν”„λ‘œκ·Έλž¨ 호좜 μ‹œ νŒ¨ν‚€μ§€ .. 2022. 3. 5.
[Oracle] ν•¨μˆ˜(Function)와 ν”„λ‘œμ‹œμ €(Procedure) 차이 μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€. μ§€λ‚œ 글듀에 ν”„λ‘œμ‹œμ €μ™€ ν•¨μˆ˜μ— λŒ€ν•΄ μ •λ¦¬ν–ˆμ—ˆλŠ”λ°μš”. μ–Έλœ» 보기엔 ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €κ°€ 거의 λ˜‘κ°™λ‹€κ³  μƒκ°λ˜λ”λΌκ΅¬μš”. (ν•¨μˆ˜ 글은 μ—¬κΈ° μ—μ„œ ν”„λ‘œμ‹œμ € 글을 μ—¬κΈ° μ—μ„œ ν™•μΈν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.) κ·Έλž˜μ„œ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이점이 μ–΄λ–€ 것이 μžˆλŠ”μ§€ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄λ €κ³  글을 μ •λ¦¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이 ν”„λ‘œμ‹œμ € λ˜ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ 값을 λ°˜ν™˜ν•  수 있고, ν•¨μˆ˜ λ˜ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ 값을 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €κ°€ λ˜‘κ°™μ€ 것은 μ•„λ‹Œλ°μš”. μ§€κΈˆλΆ€ν„° ν•¨μˆ˜μ™€ ν”„λ‘œμ‹œμ €μ˜ 차이점에 λŒ€ν•΄μ„œ λ‚˜μ—΄ν•˜κ² μŠ΅λ‹ˆλ‹€. 의미 ν”„λ‘œμ‹œμ € 일련의 쿼리λ₯Ό 마치 ν•˜λ‚˜μ˜ ν•¨μˆ˜μ²˜λŸΌ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 쿼리의 집합이며, 일련의 μž‘μ—…μ„ μ •.. 2022. 3. 5.
[Oracle] ν•¨μˆ˜(Function)λž€? (feat. C.R.U.D) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ—¬λŸ¬ μž‘μ—…μ„ ν•œλ²ˆμ— ν•  수 μžˆλŠ” ν•¨μˆ˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ ν•¨μˆ˜(Function)μ΄λž€? λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν•¨μˆ˜λŠ” 일반적인 ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ ν•¨μˆ˜μ™€ λ™μΌν•©λ‹ˆλ‹€. λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ νŠΉμ • 계산(μž‘μ—…)을 μˆ˜ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” ꡬ쑰둜 λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 즉, νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” μ½”λ“œ 뢀뢄을 μ˜λ―Έν•©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μ—μ„œλŠ” νŠΉμ • κ°’(λ§€κ°œλ³€μˆ˜)을 μž…λ ₯ λ°›μ•„ μ—¬λŸ¬ 쿼리문을 μž‘μ—…ν•œ λ’€ λ°˜ν™˜ν•˜λŠ” κΈ°λŠ₯을 μ˜λ―Έν•©λ‹ˆλ‹€. (μ–Έλœ» 보기엔 ν”„λ‘œμ‹œμ €μ™€ λ™μΌν•˜λ‹€κ³  λŠλ‚„ 수 μžˆλŠ”λ°μš”. 차이점은 μ—¬κΈ° μ—μ„œ ν™•μΈν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.) 생성 CREATE OR REPLACE FUNCTION ν•¨μˆ˜μ΄λ¦„(νŒŒλΌλ―Έν„°1이름 νƒ€μž…, νŒŒλΌλ―Έν„°2이름 νƒ€μž…...) RETURN λ°˜ν™˜ν• νƒ€μž… IS λ³€μˆ˜ μ„ μ–Έ BEG.. 2022. 3. 5.
[Oracle] 트리거(Trigger)λž€? (feat. C.R.U.D) μ•ˆλ…•ν•˜μ„Έμš” FomaπŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ΄λ²€νŠΈμ— 따라 μžλ™μœΌλ‘œ 싀행될 수 μžˆλŠ” νŠΈλ¦¬κ±°μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€! λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ 트리거(TRIGGER)λž€? Trigger의 사전적 λœ»μ€ 총의 λ°©μ•„μ‡ μž…λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 트리거λ₯Ό λœ»ν•˜λŠ” 말은 총의 λ°©μ•„μ‡ λ₯Ό λ‹ΉκΈ°λŠ” 것과 같이 μ–΄λ–€ 이벀트의 μžλ™μœΌλ‘œ μ‹€ν–‰λ˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€. ꡬ체적으둠 데이터가 μ‚­μ œλ˜μ—ˆμ„ λ•Œ,λ³€κ²½λ˜μ—ˆμ„ λ•Œ, μΆ”κ°€λ˜μ—ˆμ„ λ•Œμ— 따라 트리거λ₯Ό 생성해 μ‹€ν–‰μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 생성 트리거 이름을 μ •ν•΄μ€λ‹ˆλ‹€. CREATE OR REPLACE TRIGGER νŠΈλ¦¬κ±°μ΄λ¦„ 트리거λ₯Ό μ–΄λ–€ μ΄λ²€νŠΈμ—(μ‚½μž… λ˜λŠ” μ—…λ°μ΄νŠΈ λ˜λŠ” μ‚­μ œ), μ–Έμ œ(이벀트 λ°œμƒ μ „ λ˜λŠ” 이벀트 λ°œμƒ ν›„) 트리거λ₯Ό λ°œμƒμ‹œν‚¬μ§€ μ •ν•΄μ€λ‹ˆλ‹€. BEFORE|AFTER INSERT.. 2022. 3. 5.
[Oracle] ν”„λ‘œμ‹œμ €(Procedure)λž€? (feat. C.R.U.D) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ—¬λŸ¬ μž‘μ—…μ„ ν•œλ²ˆμ— μ‹€ν–‰ν•  수 μžˆλŠ” ν”„λ‘œμ‹œμ €μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ ν”„λ‘œμ‹œμ €(Procedure)λž€? λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ 일련의 μž‘μ—…μ„ μ •λ¦¬ν•œ 절차λ₯Ό κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμ— μ €μž₯ν•œ κ²ƒμœΌλ‘œ μ˜κ΅¬μ €μž₯λͺ¨λ“ˆ(Persistent Storage Module)이라고도 λΆˆλ¦½λ‹ˆλ‹€. 보톡 μ €μž₯ ν”„λ‘œμ‹œμ €λ₯Ό ν”„λ‘œμ‹œμ €λΌκ³  λΆ€λ₯΄λ©°, 일련의 쿼리λ₯Ό 마치 ν•˜λ‚˜μ˜ ν•¨μˆ˜μ²˜λŸΌ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 쿼리의 μ§‘ν•©μž…λ‹ˆλ‹€. 즉, νŠΉμ • μž‘μ—…μ„ μœ„ν•œ μΏΌλ¦¬λ“€μ˜ λΈ”λ‘μž…λ‹ˆλ‹€. (거의 ν•¨μˆ˜μ™€ λΉ„μŠ·ν•©λ‹ˆλ‹€. 차이점은 μ—¬κΈ° μ—μ„œ ν™•μΈν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.) μž₯점 ν•˜λ‚˜μ˜ μš”μ²­μœΌλ‘œ μ—¬λŸ¬ SQL문을 μ‹€ν–‰μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. (λ„€νŠΈμ›Œν¬ λΆ€ν•˜λ₯Ό 쀄일 수 있음) λ„€νŠΈμ›Œν¬ μ†Œμš” μ‹œκ°„μ„ 쀄여 μ„±λŠ₯을 κ°œμ„ ν•  수 μžˆμŠ΅λ‹ˆ.. 2022. 3. 4.
[Oracle] λ·°(View)λž€? (feat C.R.U.D) μ•ˆλ…•ν•˜μ„Έμš” FomaπŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ ν•˜λ‚˜ μ΄μƒμ˜ ν…Œμ΄λΈ”μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μ‰½κ²Œ ν•˜λŠ” View에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ λ·°(View)λž€? SQLμ—μ„œ ν•˜λ‚˜ μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ μ›ν•˜λŠ” λͺ¨λ“  데이터λ₯Ό μ„ νƒν•˜μ—¬ κ°„λ‹¨ν•˜κ²Œ λ‚˜νƒ€λ‚Έ κ²ƒμž…λ‹ˆλ‹€. κΈ°λ³Έ ν…Œμ΄λΈ”κ³Ό 같이 ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμ§€λ§Œ, 데이터 자체λ₯Ό ν¬ν•¨ν•˜κ³  μžˆλŠ” 건 μ•„λ‹™λ‹ˆλ‹€. λ°μ΄ν„°μ˜ 가독성을 μœ„ν•΄ 보톡 select문처럼 μ‚¬μš©λ©λ‹ˆλ‹€. ex) View:κ°€λ Œλͺ¨μŠ€νŠΈ 2022. 3. 4.
[Oracle] DDL(Data-Definition-Language)λ¬Έμ΄λž€? (feat. Oracle) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ 였라클 ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κ³ , μˆ˜μ •ν•˜κ³ , μ‚­μ œν•˜λŠ” 법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€. SQLλ¬Έμ—μ„œλŠ” 이것은 DDL 이라고 ν•˜λŠ”λ°μš”. μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€! λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ Create ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜λŠ” 방법은 μ—¬λŸ¬κ°€μ§€κ°€ μžˆλŠ”λ°μš”. λ¨Όμ € μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•Šκ³  SQLDeveloper둜 λ§Œλ“œλŠ” 법뢀터 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. SQLDeveloper의 μ™Όμͺ½μ— μ ‘μ†μ°½μ˜ ν…Œμ΄λΈ”μ—μ„œ 였λ₯Έμͺ½ λ²„νŠΌμ„ 눌러 μƒˆ ν…Œμ΄λΈ”μ„ 눌러 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. μ•„λž˜μ™€ 같이 ν…Œμ΄λΈ” 이름과, μ—΄ 이름, 데이터 μœ ν˜• 크기 등을 μ •ν•΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€. μ €λŠ” λ‘€μ±”ν”Όμ–Έμ˜ 정보λ₯Ό λ‹΄λŠ” ν…Œμ΄λΈ”μ„ λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. μœ„μ™€ 같이 λ§Œλ“€κ³  확인을 λˆ„λ₯΄λ©΄ μ•„λž˜μ™€ 같이 μƒˆλ‘­κ²Œ ν…Œμ΄λΈ”μ΄ 생긴 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ½”λ“œλ‘œ ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜.. 2022. 1. 4.
728x90
λ°˜μ‘ν˜•