1. 자료형이 다른 여러 데이터를 저장하는 레코드
- 레코드란? 자료형이 각기 다른 데이터를 하나의 변수에 저장하는 데 사용
TYPE 레코드 이름 IS RECORD( 변수 이름 자료형 NOT NULL := (또는 DEFAULT) 값 또는 값이 도출되는 여러 표현식 ) |
레코드 이름: 저장할 레코드 이름 지정 |
변수 이름: 레코드 안에 포함할 변수 지정, 변수는 여러 개 지정할 수 있으며 쉼표(,)로 구분 |
자료형: 지정한 변수의 자료형을 지정, 이 자료형 역시 %TYPE,%ROWTYPE 지정이 가능합니다 |
NOT NULL: 지정한 변수에 NOT NULL 제약 조건을 지정(생략 가능) |
:= (또는 DEFAULT) 값 또는 값이 도출되는 여러 표현식: 기본값 지정(생략 가능) |
- 레코드를 사용한 INSERT
PL/SQL문에서 테이블에 데이터 삽입,수정하는 INSERT, UPDATE문에도 레코드 사용 가능
- 레코드를 사용한 UPDATE (SET절은 ROW키워드와 함께 레코드 제시 해야함)
- 레코드를 포함하는 레코드(중첩 레코드)
2. 자료형이 같은 여러 데이터를 저장하는 컬렉션
- 컬렉션은 특정 자료형의 데이터를 여러 개 저장하는 복합 자료형으로 연관 배열, 중첩테이블, VARRAY 총 세가지 사용가능
- 연관 배열(associative array(or index by table): 인덱스라고도 불리는 키, 값으로 구성되는 컬렉션으로 중복되지 않은 유일한 키를 통해 값을 저장하고 불러오는 방식을 사용
TYPE 연관 배열 이름 IS TABLE OF 자료형 [NOT NULL] INDEX BY 인덱스형; |
연관 배열 이름: 작성할 연관 배열 이름 지정 |
자료형 [NOT NULL] : 연관 배열 옆에 사용할 자료형 지정/VARCHAR2, DATE, NUMBER와 같은 단일 자료형 지정,%TYPE, %ROWTYPE같은 참조 자료형도 사용가능/NOT NULL 옵션 사용할 수 있으며 생략 가능 |
인덱스형: 키로 사용할 인덱스의 자료형 지정, BINARY_INTEGER,PLS_INTEGER같은 정수 또는 VARCHAR2같은 문자 자료형 사용가능 |
○ 레코드를 활용한 연관 배열
- 컬렉션 메서드: 오라클이 사용상 편의를 위해 제공하는 서브 프로그램으로 컬렉션과 관련된 다양한 정보를 조회할 수 있음/컬렉션 내의 데이터 삭제나 컬렉션 크기 조절을 위한 특정 조작도 가능
메서드 | 설명 |
EXIST(s) | 컬렉션에서 n인덱스의 데이터 존재 여부를 true/false로 반환 |
COUNT | 컬렉션에 포함되어 있는 요소 개수를 반환 |
LIMIT | 현재 컬렉션의 최대 크기를 반환, 최대 크기가 없으면 NULL을 반환 |
FIRST | 컬렉션의 첫번째 인덱스 번호를 반환 |
LAST | 컬렉션의 마지막 인덱스 번호를 반환 |
PRIOR(n) | 컬렉션에서 n인덱스 바로 앞 인덱스 값을 반환, 대상 인덱스 값이 존재하지 않는다면 NULL을 반환 |
NEXT(n) | 컬렉션에서 n인덱스 바로 다음 인덱스 값을 반환, 대상 인덱스 값이 존재하지 않는다면 NULL을 반환 |
DELETE | 컬렉션에 저장된 요소를 지우는 데 사용 - DELETE: 컬렉션에 저장되어 있는 모든 요소 삭제 - DELETE(n): n인덱스의 컬렉션 요소를 삭제 - DELETE(n,m):n인덱스부터 m인덱스까지 요소를 삭제 |
EXTEND | 컬렉션 크기를 증가시킴, 연관 배열을 제외한 중첩 테이블과 VARRAY에서 사용 |
TRIM | 컬렉션 크기를 감소시킴, 연관 배열을 제외한 중첩 테이블과 VARRAY에서 사용 |
컬렉션 메서드는 컬렉션 형으로 선언한 변수에 마침표(.)와 함께 작성하여 사용할 수 있음 |
'공부 > 데이터베이스' 카테고리의 다른 글
[오라클로 배우는 데이터베이스 입문] 18. 특정 열을 선택하여 처리하는 커서 (0) | 2022.04.10 |
---|---|
[오라클로 배우는 데이터베이스 입문] 17. 연습문제 (0) | 2022.04.07 |
[오라클로 배우는 데이터베이스 입문] 16. 연습문제 (0) | 2022.04.07 |
[오라클로 배우는 데이터베이스 입문] 16. PL/SQL 기초 (0) | 2022.04.07 |
[오라클로 배우는 데이터베이스 입문] 15. 연습문제 (0) | 2022.04.05 |