반응형

안녕하세요. 신기한 연구소입니다.

최근 PL/SQL, PROCEDURE를 사용할 일이 발생했답니다.

그래서 다시 복습하는 기분으로 간단하고 친절하게 정리해 봤습니다.

오랜만에 사용해서 기억이 가물 거리는 분들도 같이 활용해 봅시다. 

Oracle SQL Developer와 SQL*Plus를 사용해서 테스트를 했습니다.

PL/SQL은 블록 구조 언어입니다.

그래서 DECLARE, BEGIN, EXCETION 그리고 END라는 키워드를 사용합니다.

간단하게 구문 테스트를 하려면 SQL*Plus 또는 SQL DEVELOPER에서 쿼리 실행기에서 테스트 할 수 있습니다.

STORED PROCEDURE로 저장해서 사용하려면 DDL 구문을 사용하면 됩니다.

STORED PROCEDURE로 활용하는 방법은 마지막 부분에 설명하겠습니다.

결과값 보여주기 설정

실행하면 

"PL/SQL 처리가 정상적으로 완료되었습니다."

라는 메시지만 나오고 출력 값이 안 나오는 경우는

 

SET SERVEROUTPUT ON을 실행해 줍니다.

SQL DEVELOPER에서도 같은 명령어를 주고 마지막에 세미콜론(;)을 붙인 뒤 실행하면 됩니다.

SQL*Plus에서 마지막 END;를 입력한 뒤 엔터를 쳐도 코딩 상태에서 빠져나오지 않습니다.

그때는 "/"를 넣고 엔터를 치면 됩니다.

 

PL/SQL은 우선 선언부가 있습니다. (DECLARE)

실행하는 영역에서 사용할 변수, 상수 그리고 다른 요소들을 선언하는 부분입니다.

실행부(BEGIN ~ END)는 실제로 구문들을 실행할 로직들이 들어있습니다.

마지막으로 예외를 처리하는 (EXCEPTION) 부분이 있습니다.

 

이렇게 3가지 영역을 사용해봤습니다.

예외처리 방식은 다음과 같습니다.

EXCEPTION
  WHEN 예외상황01 
  THEN 예외에 맞는 처리01
  WHEN 예외상황02
  THEN 예외에 맞는 처리02
  ...
  WHEN OTHERS
  THEN
    예외에 맞는 처리

 

이렇게 선언부, 실행부, 예외처리부 3가지로 구성되어 있습니다.

이제 구성요소를 알게 되었으니

그 안에 선언도 하고 로직도 구현하면서 예외처리도 하면 되겠네요.

이제 DDL을 사용해서 프로시저(Stored Procedure)를 만들어보겠습니다.

my_first라는 이름의 프로시저를 만들어봤습니다.

CREATE OR REPLACE PROCEDURE 프로시저 명 IS를 사용합니다.

만든 프로시저는 이렇게 실행하면 됩니다.

exec 프로시저명.

 

SQL DEVELOPER는 더 쉽게 만들 수 있습니다.

왼쪽 메뉴를 보면 프로시저라는 트리 메뉴가 있습니다.

메뉴에 우 클릭을 하면 새 프로시저라는 메뉴가 보입니다.

이렇게 새 프로시저를 만들 수 있게 나타납니다.

프로시저 이름은 MY_SECOND라고 지었습니다.

매개변수를 넣고 싶으면 아래 + 버튼을 사용해서 추가하면 됩니다.

간단하게 매개변수를 추가하게 되었습니다.

그럼 확인을 눌러보겠습니다.

이렇게 자동으로 STORED PROCEDURE를 만드는 DDL문장이 생성되었습니다.

추가한 매개변수도 잘 들어가 있습니다.

지금까지 PL/SQL과 PROCEDURE의 구성에 대해 간단하게 살펴봤습니다.

다음 포스팅은 본격적으로 로직을 구성하기 위한 다양한 구문들을 살펴보겠습니다.

반응형