레코드
- 자료형이 각기 다른 데이터를 하나의 변수에 저장하는 데 사용한다.
- 변수는 여러 개 지정할 수 있고(한 줄 당 변수 한 개), 각 변수는 쉼표로 구분한다.
- 레코드에 포함된 변수를 사용할 때는 레코드이름.변수이름 으로 사용할 수 있다.
레코드 '자료형' 생성하기
TYPE 레코드이름 IS RECORD(
변수이름 자료형 NOT NULL := 표현식
)
위에서 생성한 자료형으로 변수를 만들 때는 아래 쪽에 다음과 같이 선언해주어야 한다.
변수이름 레코드이름;
레코드를 사용하여 INSERT 하기
INSERT INTO 테이블이름
VALUES 레코드변수;
레코드를 사용하여 UPDATE 하기
UPDATE 테이블이름
SET ROW = 레코드변수
WHERE 조건식;
컬렉션
컬렉션의 종류
- 연관 배열
- 중첩 테이블
- VARRAY(variable-size array)
연관 배열
- 인덱스라고도 불리는, 키-값으로 구성되는 컬렉션이다.
- 연관 배열의 자료형으로 레코드를 넣을 경우, 테이블과 같이 사용할 수 있다.
[기본 형식]
TYPE 연관배열이름 IS TABLE OF 자료형 [NOT NULL]
INDEX BY 인덱스자료형;
* 인덱스 자료형: BINARY_INTEGER, PLS_INTEGER, VARCHAR2 등
BEGIN 문단에서
연관배열변수(1) := '1st data'; 와 같이 변수의 키 1에 '1st data' 라는 값을 대입할 수 있다.
예제 01. 다른 테이블의 값 그대로 복사하기
BEGIN
FOR i IN (SELECT DEPTNO, DNAME FROM DEPT) LOOP
idx := idx + 1;
dept_arr(idx).deptno := i.DEPTNO;
dept_arr(idx).dname := i.DNAME;
END LOOP;
END;
컬렉션 메서드
EXISTS(n) | n인덱스의 존재 여부를 T/F 로 반환 |
COUNT | 컬렉션에 포함되어 있는 요소 개수를 반환 |
LIMIT | 현재 컬렉션의 최대 크기를 반환 |
FIRST | 첫 번째 인덱스 번호 반환 |
LAST | 마지막 인덱스 번호 반환 |
PRIOR(n) | n인덱스 바로 앞 인덱스 값 반환 |
NEXT(n) | n인덱스 바로 다음 인덱스 값 반환 |
DELETE | - DELETE : 모든요소 삭제 - DELETE(n) : n인덱스의 컬렉션 요소 삭제 - DELTE(n,m) : n인덱스부터 m인덱스까지의 요소 삭제 |
EXTEND | 컬렉션 크기 증가(중첩 테이블, VARRAY에서 사용) |
TRIM | 컬렉션 크기 감소(중첩 테이블과 VARRAY에서 사용) |
'BackEnd > DB, SQL' 카테고리의 다른 글
SQL 23편: 예외 처리 (0) | 2022.01.25 |
---|---|
SQL 22편: 커서 (0) | 2022.01.23 |
SQL 21편: 조건 제어문(IF, CASE), 반복 제어문(LOOP) (0) | 2022.01.19 |
SQL 20편: PL/SQL 기초(블록, 변수와 상수 정의하기) (0) | 2022.01.18 |
SQL 19편: 사용자, 권한, 롤 관리 (0) | 2022.01.16 |
댓글