더북(TheBook)

02 | 레코드

레코드는 PL/SQL에서 제공하는 데이터 타입 중 하나로, 문자형, 숫자형 같은 기본 빌트인 타입과는 달리 복합형 구조다. 예컨대 일반 빌트인 타입으로 변수를 선언하면 해당 변수는 한 번에 하나의 값만 가질 수 있지만 레코드는 여러 개의 값을 가질 수 있다. 이런 측면에서 보면 레코드의 형태는 테이블과 흡사하다. 테이블은 여러 개의 컬럼을 각기 다른 데이터 타입으로 선언해서 사용할 수 있는데 레코드도 마찬가지다. 테이블과 다른 점은 테이블은 여러 개의 로우를 가질 수 있는 2차원 형태인데 반해, 레코드가 가질 수 있는 로우의 수는 단 한 개 뿐이다. 따라서 레코드는 서로 다른 유형의 데이터 타입을 가진 변수 여러 개가 한 줄로 죽 늘어져 붙어 있는 형태라고 이해하면 된다.

그림 11-1 일반 변수와 레코드의 형태

문자형  숫자형   일반 변수

숫자형문자형날짜형    레코드 변수

앞 절에서 커서 변수에 대해 배웠는데, 레코드의 선언도 커서 변수와 거의 흡사하다. 커서 변수를 선언할 때, IS REF COURSOR 구문으로 타입을 선언한 다음 이 타입에 대한 커서 변수를 선언했는데, 레코드도 동일한 방식으로 선언한다. 왜냐하면 커서란 것이 테이블에 있는 데이터를 읽어오는 것이므로 데이터 구조적 측면에서 보면 커서도 레코드에 속하기 때문이다.

레코드의 종류는 명확히 구분해서 사용하지는 않으나, 굳이 구분해 본다면 레코드 선언 방식에 따라 커서형, 사용자 정의형, 테이블형 레코드로 나눌 수 있다. 커서형 레코드는 앞 절에서 다룬 커서 변수 형태를 말한다. 여기서는 사용자 정의형과 테이블형 레코드에 대해 살펴 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.