Search

반응형

'Software/데이터베이스(SQL)'에 해당되는 글 33건

  1. 2021.05.30 [PLSQL]변수와 상수 친절한 설명으로 이해하기.
  2. 2021.05.23 [PLSQL]친절한 PL/SQL 간단 시작 사용기.
반응형

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

변수와 상수에 대해 알아봅니다.

우선 간단하게 변수와 상수가 무엇인지 알아봅니다.

변수는 변하는 수입니다.

즉, 값을 바꿀 수 있다는 의미입니다.

빈 박스를 생각하면 됩니다.

박스 안에 어떤 수를 넣고 뺄 수 있거든요.

상수는 변하지 않는 수입니다.

그 말은 한 번 포장을 하면 바꿀 수 없다는 의미입니다.

유리나 플라스틱 큐브 안에 하나의 값을 넣고 밀봉하면 다른 값을 넣을 수 없겠죠?

바로 상수라고 합니다.

 

PL/SQL에서는 변수와 상수를 어떻게 사용하는지 같이 보겠습니다.

우선 변수를 선언하는 방법입니다.

기본적인 몇 가지를 소개해봅니다.

먼저 저번에 봤던 문자열 VARCHAR2 형식입니다.

사용할 변수명을 지정한 뒤 문자열이면 VARCHAR2를 붙여줍니다.

그리고 몇 글자를 입력받을지 사이즈를 정할 수 있습니다. ( ) 안에 숫자로 표시합니다.

위 예시는 (50)이므로 50개의 문자를 입력받을 수 있습니다.

그리고 값을 할당 할때는 :=를 사용합니다.

문자열이기 때문에 싱글쿼테이션 ' ' 안에 값을 넣어줍니다.

이름이라는 변수를 만들고 싶다면,

name VARCHAR(10); 

이렇게 하면 되겠네요. name := '홍길동';

숫자인 NUMBER나 INTEGER는 싱글 쿼테이션이 없어도 됩니다.

숫자는 그냥 숫자만 써주면 된답니다. age := 5;

이제 상수에 대해 알아봅니다.

변수와 비슷하지만 다른점이 있습니다.

상수는 밀봉된 큐브안에 값이 있기에 바꿀 수 없다고 했습니다.

그 말은 선언(밀봉)할 때 이미 값이 들어 있어야 합니다.

그리고 중간에 값을 바꿀 수 없는 구조라는 겁니다.

위 예제를 보면 iCode는 값을 넣고 밀봉(CONSTANT)을 했습니다.

출력하면 4355로 값이 잘 나옵니다. 

그리고 iCode를 3344로 변경을 시도합니다.

하지만 오류가 발생합니다 (빨간 밑줄 보이시죠?)

중간에 값을 바꿀 수 없습니다. 밀봉(CONSTANT)되어 있기 때문입니다.

또한 iMember처럼 선언할 때 값 없이 밀봉해도 오류가 납니다.

값이 없이 밀봉이 끝났기에 중간에 값을 넣을 수도 없습니다.

전부 오류가 발생했습니다.(빨간줄)

좀 더 편하게 타입을 정할 수 있습니다.

위 예제를 보면 VARCHAR2, CHAR, NUMBER 등의 타입을 지정해서 사용했습니다.

하지만 변수가 테이블의 변수와 대응한다면 

하나씩 찾아가면서 타입을 지정해야 하는 불편함이 있겠지요?

더 편하게 사용할 수 있습니다.

바로 그 컬럼의 타입을 불러오면 되거든요.

MEMBER 테이블의 NAME을 변수에 담아서 사용하고 싶다면

sName MEMBER.NAME%TYPE;

사용할 변수 이름(sName)을 지정한 뒤 테이블명.컬럼명을 지정합니다. MEMBER.NAME

그리고 컬럼명에 %TYPE를 붙여주면 MEMBER.NAME의 타입을 사용할 수 있게 됩니다.

이렇게 변수와 상수 그리고 편하게 사용할 수 있는 테이블의 타입을 활용하는 방법을 알아봤습니다.

어떤 공부를 하더라도 용어에 대한 개념을 잘 이해한다면

어려움 없이 사용할 수 있다고 생각되네요.

내일도 가서 열심히 코딩해야겠습니다. 

 

반응형
반응형

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

최근 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의 구성에 대해 간단하게 살펴봤습니다.

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

반응형