###################################################################################################
# source site : blog.naver.com/tangamjaelt
# master : 강용운
# email : tangamjaelt@korea.com
# last release : 2007.12.22
###################################################################################################
인덱스 테이블과 달리 행이 순서대로 정렬되지 않은 모음이다.
특정 데이터형을 지원하지 않는다.
초기화하려면 constructor 메소드를 사용해야 한다.
인덱스 범위는 -2,147,483,647 ~ 2,147,483,647 이다.
검색할 때 항목은 연속적으로 색인화된다.
중첩테이블 선언
- INDEX BY 절이 사용되지 않는다. 이 절이 있으면 인덱스 테이블, 없으면 중첩 테이블.
TYPE 형이름 IS TABLE OF 데이터형 [NOT NULL];
- 항목을 추가하기 전에 생성자를 호출하여 테이블을 초기화 시킨다.
- 생성자는 오브젝트에 실제로 메모리를 할당하고, 그 오브젝트와 연결된 데이터 구조체를 초기화시키는 함수를 말한다.
- 중첩테이블에서 생성자 함수는 모음을 실제로 생성한 다음, 그것을 선언한 변수에 할당하는 것을 말한다.
중첩테이블 초기화
TYPE dept_table IS TABLE OF department$ROWTYPE; depts dept_table; -- depts 중첩테이블 변수 선언
depts := dept_table(); -- 생성자 함수 호출. 형이름(). ()안에 아무것도 넣지 않으면 빈 테이블이 생성된다. |
- dept_table(dept1, dept2) 처럼 항목에 대한 값을 넣으면 테이블에 값이 들어간다.
중첩테이블 확장
- extend 메소드를 사용해서 항목을 추가한다.
- 모음.EXTEND;
- 모음.EXTEND(5,1); -- 첫번째 항목을 5번째에 복사한다.
중첩테이블 삭제
- 모음.DELETE(10)
- 모음.TRIM(끝에서부터잘라낼항목수)
'ORACLE > SQL' 카테고리의 다른 글
PL/SQL (0) | 2008.02.22 |
---|---|
PL/SQL (13) - 커서(cursor) (0) | 2008.02.21 |
<25가지 SQL작성법> (0) | 2008.02.19 |
oracle에서 hint의 사용 (0) | 2008.02.14 |
Materialized View 설명 (0) | 2008.02.14 |