PL/SQL의 중첩 테이블은 동일한 유형의 요소를 무제한으로 저장할 수 있는 컬렉션 유형입니다. 특히 구조화된 형식으로 데이터 세트를 보관하는 데 유용하므로 관련 데이터의 여러 행을 관리해야 하는 시나리오에 이상적입니다.
간단한 정의
중첩 테이블: 중첩 테이블은 동일한 데이터 유형의 요소를 임의 개수만큼 보유할 수 있는 컬렉션 유형입니다. VARRAY와 달리 중첩 테이블은 희박할 수 있으므로 인덱싱에 공백이 있을 수 있습니다.
구문 및 구조
구문
type_name을 element_type의 테이블로 생성하거나 교체하세요.
type_name: 중첩된 테이블 유형의 이름입니다.
element_type: 중첩 테이블에 있는 요소의 데이터 유형(예: VARCHAR2, NUMBER 또는 객체 유형).
변수_이름 유형_이름;
EXTEND(n): 중첩 테이블의 크기를 n 요소만큼 늘립니다.
TRIM(n): 중첩 테이블의 크기를 n개 요소만큼 줄입니다.
DELETE(i): 인덱스 i에 있는 요소를 제거합니다.
COUNT: 중첩 테이블의 요소 수를 반환합니다.
샘플 예: 요일의 중첩 테이블
다음은 요일에 대한 중첩 테이블을 만들고, 채우고, 내용을 표시하는 방법을 보여주는 포괄적인 예입니다.
1단계: 중첩 테이블 유형 생성
먼저 요일 이름을 보관할 중첩 테이블 유형을 정의합니다.
VARCHAR2(15) 테이블로 DaysOfWeek 유형을 생성하거나 교체하세요.
2단계: 중첩 테이블 선언 및 채우기
다음으로 이 유형의 변수를 선언하고 요일을 채웁니다.
선언
일 DaysOfWeek; -- 중첩 테이블 변수 선언
시작
-- 중첩 테이블 초기화
days := DaysOfWeek();
-- Add elements to the nested table days.EXTEND(7); -- Extend the size by 7 for all days of the week days(1) := 'Monday'; days(2) := 'Tuesday'; days(3) := 'Wednesday'; days(4) := 'Thursday'; days(5) := 'Friday'; days(6) := 'Saturday'; days(7) := 'Sunday'; -- Display the elements in the nested table FOR i IN 1 .. days.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Day ' || i || ': ' || days(i)); END LOOP;
종료;
/
자세한 설명
CREATE OR REPLACE TYPE DaysOfWeek AS TABLE OF VARCHAR2(15) 문; 최대 15자 길이의 문자열을 보유할 수 있는 DaysOfWeek라는 새로운 중첩 테이블 유형을 정의합니다. 이 유형은 요일 이름을 저장하는 데 사용됩니다.
DECLARE 블록에서 days는 DaysOfWeek 유형의 변수로 선언됩니다. 이 변수는 날짜 컬렉션을 보관합니다.
일 := DaysOfWeek(); days 변수를 DaysOfWeek 유형의 빈 중첩 테이블로 초기화합니다.
일.EXTEND(7); 7개 요소(매 요일에 하나씩)를 담을 수 있도록 일 중첩 테이블의 크기를 늘립니다.
매일 해당 인덱스에 할당됩니다:
일(1) := '월요일';
일(2) := '화요일';
일(3) := '수요일';
일(4) := '목요일';
일(5) := '금요일';
일(6) := '토요일';
일(7) := '일요일';
FO 루프는 days.COUNT를 사용하여 일 중첩 테이블을 반복하여 존재하는 요소 수를 확인합니다.
DBMS_OUTPUT.PUT_LINE은 매일 인덱스와 함께 출력합니다.
출력
이 블록이 실행되면 출력은 다음과 같습니다.
1일차: 월요일
2일차: 화요일
3일차: 수요일
4일차: 목요일
5일차: 금요일
6일차: 토요일
7일차: 일요일
결론
이 예에서는 PL/SQL에서 중첩 테이블을 정의하고, 채우고, 조작하는 방법을 보여줍니다. 중첩 테이블은 데이터 수집을 효율적으로 처리할 수 있는 다목적 구조이며, 동적 데이터 관리가 필요한 다양한 애플리케이션에서 사용할 수 있습니다.
위 내용은 PL/SQL의 중첩 테이블 컬렉션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!