Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- AOP
- @
- springmvc
- 서비스레이어
- MVC
- produces
- 바인딩변수
- @RequestMapping
- SpringBoot
- jointpoint
- springjdbc
- @RequestParam
- 스프링
- @Valid
- .xml
- after-throwing
- Model
- gradle
- 유효성검사
- 의존주입
- c:if
- @ResponseBody
- 비즈니스레이어
- 어노테이션
- 생성자주입
- spring
- frontController
- application.properties
- PointCut
Archives
- Today
- Total
메모장
[ DB ] 오라클 프로시저 (PROCEDURE) 본문
728x90
반응형
프로 시저 (PROCEDURE) 란 ?
- DB 에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것으로 영구저장모듈(Persistent Storage Module)이라고도 불린다.
- 넓은 의미로 어떠한 업무를 수행하기 위한 절차를 뜻한다.
ex) 쇼핑몰에서 물건을 구매하는 과정을 프로시저로 표현해본다면
- 쇼핑몰 회원으로 로그인-> 2. 구매할 물건을 선택한다.-> 3. 개인정보 및 배송지를 선택한다.-> 4. 결제
어떤 프로세스를 절차적으로 기술해 놓은 것을 프로시저라고 한다.
- 쿼리문을 하나의 메서드 형식으로 만들고 어떤 동작을 일괄적으로 처리하는 용도로 쓰인다.
- 만약 여러 개의 칼럼을 조회하거나, 여러 개의 테이블을 조회하려고 할 때 이것을 하나의 쿼리문으로 만들려면 복잡하고 긴 쿼리문이 생성한다. 이렇게 여러 개의 쿼리를 사용할 때 일일이 긴 쿼리문을 사용하게 된다면 불편하기에 이를 프로시저에 저장하여 호출한다.
- 문자나 숫자 연산에 프로시저를 사용하면 오히려 C나 JAVA보다 처리 성능이 느리다.
- 함수와 비슷하다. 함수와의 차이점도 알아두자
프로시저(Procedure)와 함수(Function)의 차이

장점
하나의 요청으로 여러 SQL문을 실행시킬 수 있습니다. (네트워크 부하를 줄일 수 있음)
네트워크 소요 시간을 줄여 성능을 개선할 수 있습니다.
여러 어플리케이션과 공유가 가능합니다. (API처럼 제공가능)
기능 변경이 편합니다. (특정 기능을 변경할 때 프로시저만 변경하면 됨)
단점
문자나 숫자열 연산에 사용하면 오히려 C,Java보다 느린 성능을 보일 수 있습니다.
유지보수가 어렵습니다.(프로시져가 앱의 어디에 사용되는지 확인이 어려움)
프로시저 문법
CREATE OR REPLACE PROCEDURE 프로시져이름 (파라미터1,파라미터2...);
// ex) CREATE OR REPLACE PROCEDURE GET_TIER(in_name IN VARCHAR2,out_tier OUT VARCHAR2)
IS
변수
BEGIN
쿼리문
END 프로시져 이름;
---------------------------------------------------------------------------
파라미터 값은 in,out,inout으로 총 세가지 종류로 작성할 수 있습니다.
먼저 in은 전달될 데이터이고,
out은 결과로 나갈 데이터,
in out in과 out 모두 가능한 데이터를 뜻합니다.
조회 및 삭제
// 조회
DECLARE
출력될 변수 선언
실행할 프로시저
출력문(Optional)
END
// 삭제
DROP PROCEDURE 프로시저명;
728x90
반응형
'DB > 개념정리' 카테고리의 다른 글
| [ Oracle ] EXTRACT 함수 (0) | 2024.04.10 |
|---|---|
| COALESCE 함수 (0) | 2024.04.10 |
| [ DB ] 이벤트 스케쥴러 (0) | 2024.04.10 |
| [DB] 트리거 (0) | 2024.04.10 |
| 유니크 키 (Unique Key) (0) | 2024.04.10 |