달력

11

« 2024/11 »

  • 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
2017. 8. 3. 21:26

PL/SQL 구조와 변수 DB2017. 8. 3. 21:26

<PL/SQL 구문의 구조>

PL/SQL은 다음과 같은 구조를 가지고 있다.

DECLARE (선언부)

프로그램에서 사용하는 객체 정의

BEGIN (실행부)

프로그램의 구체적인 실행 내용

EXCEPTION (예외처리부)

프로그램에서 예외 발생 시 처리할 내용

END;

/


위 구문에서 DECLARE 나 EXCEPTION 등은 로직에 따라서 생략도 가능하며, BEGIN과 END 사이에 다시 중첩으로 실행 블록을 넣는 것도 가능하다.


<변수>

변수의 선언은 var1 NUMBER; 와 같이 앞쪽에 변수명을 적고 뒤쪽에 데이터 타입을 적는다. 선언 시 var1 NUMBER DEFAULT 20;과 같이 기본값을 설정할 수 있다.

변수의 대입은 var1 := 10; 과 같이 := 연산자를 사용해야 한다.


변수의 타입은 크게 스칼라, 콤포지트, 참조 3가지로 나눌 수 있다.

 - 스칼라 타입 : 오라클에 의해 미리 정의된 데이터 타입이다. NUMBER, CHAR, VARCHAR2, DATE, BOOLEAN이 있다.

 - 콤포지트 타입 : 사용자에 의해 정의되어야 하는 타입이다. RECORD, TABLE, Nested TABLE, VARRAY가 있다.

 - 참조 타입 : 사용자가 정의하는 타입으로 처리 대상 데이터를 참조할 수 있는 특징이 있다. REF CURSOR가 있다.


이 외에 특수한 속성으로 %TYPE%ROWTYPE이 있다. 이 둘은 미리 정의된 변수의 데이터 타입을 참조할 때 사용한다.

먼저, %TYPE은 특정 컬럼의 데이터 타입을 참조할 때 쓰인다.

DECLARE

var1 dept.deptno%TYPE

BEGIN

SELECT deptno INTO var1 FROM dept WHERE location='KOREA'

END;

와 같은 프로그램에서는 var1이 dept 테이블의 deptno 컬럼의 타입을 따라가는 것이다.

다음으로 %ROWTYPE은 특정 행 구조를 참조할 때 쓰인다.

DECLARE

row1 dept%ROWTYPE

BEGIN

SELECT deptno, dname, location INTO row1 FROM dept WHERE deptno=10;

END;

위와 같은 프로그램에서는 row1이 dept테이블의 특정 row의 구조(deptno, dname, location)의 데이터 타입을 모두 가져간다.

'DB' 카테고리의 다른 글

파티셔닝  (0) 2019.02.09
PL/SQL 조건, 반복 제어문  (0) 2017.08.05
PL/SQL 시작하기  (0) 2017.07.18
해쉬 인덱스  (0) 2017.06.06
복합 인덱스  (0) 2017.06.06
:
Posted by SK