새소식

인기 검색어

SQL

[SQL] 프로시저(Procedure)

  • -
프로시저란?

 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것으로 영구저장모듈이라고 불리며 보통 저장 프로시저를 프로시저라고 부르며, 하나의 요청으로 여러 SQL문을 실행시킬 수 있습니다.

또한, 네트워크 소요시간을 줄여 성능을 개선 할 수 있으며 여러 어플리케이션과 공유가 가능합니다.

 

※ 관계형 데이터베이스 관리시스템이란?

 

 

프로시저 단점

 하나의 요청으로 여러 SQL문을 실행시키다보니 네트워크에 부하를 줄 수 있으며 문자나 숫자열 연산에 사용하면 오히려 C, JAVA보다 느린 성능을 보일 수 있습니다. 또한, 프로시저가 어디에 사용되는지 확인이 어려워 유지보수가 어렵습니다.

.

 

프로시저 구조
CREATE OR REPLACE PROCEURE "원하는 프로시저이름"
	--( 프로시저 생성 "파라미터 이름" [IN\OUT\INOUT 중에 선택] "데이터 타입", ...)
IS
    "변수선언"
BEGIN	--프로시저 시작
	"명령어";
[COMMIT\ROLLBACK]
END; -- 프로시저 끝

 

 

프로시저 문법
- CREATE [OR REPLACE] 구문을 이용하여 생성한다.

1) OR REPLACE : 같은 프로시저가 있을 때, 기존의 프로시저를 무시하고 새로운 내용으로 덮어쓴다.

2) MODE : mode는 매개변수의 역할을 결정하는 자리이다. mode자리에 들어갈 수 있는 변수는 IN / OUT / INOUT이 있다.
     2.1) IN : 변수값을 입력받고 프로시저로 전달한다.
     2.2) OUT : 프로시저로 처리된 결과를 리턴한다.
     2.3) INOUT : 변수값을 받고 프로시저 처리 후 리턴한다.

3) IS : PL/SQL의 Block을 시작한다는 의미이며, 프로시저 내(정확히는, Begin문 뒤에 나올 SQL문)에서 사용할 변수를 선언하는 곳이다. LOCAL변수는 IS와 Begin사이에 선언해서 사용한다.

4) EXCEPTION : Begin ~ end 사이에서 실행되는 SQL문 실행 도중 발생한 에러를 처리하는 예외 처리

5)  END : 실행문의 종료를 의미한다.

6) / : end; 뒤에 위치하는 슬래시(/)는 데이터베이스에게 프로시저를 컴파일하라는 명령이다.

7) COMMIT : 하나의 트랜잭션이 성공적으로 끝나고 데이터베이스가 일관적인 상태로 끝났을 때 사용한다

8) ROLLBACK : 하나의 트래잭션이 비정상적으로 끝나 처음부터 다시 시작하거나 부분적으로 연산을 취소할 때 사용한다.

'SQL' 카테고리의 다른 글

아스타 리스크(*)  (0) 2022.10.14
[SQL] ROUND  (0) 2022.10.09
집계 함수 / 분석 함수  (0) 2022.09.21
SELECT INTO  (0) 2022.09.21
SYNONYM  (0) 2022.08.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.