728x90
반응형
728x170
■ 레코드 타입을 항목으로 갖는 연관 배열을 사용하는 방법을 보여준다.
▶ 예제 코드 (SQL)
SET SERVEROUTPUT ON;
DECLARE
-- 직원 테이블을 조회하는 커서를 정의한다.
CURSOR EMPLOYEE_CURSOR IS
SELECT *
FROM SCOTT.EMP
ORDER BY ENAME;
-- 직원 커서의 레코드 타입을 항목으로 갖는 연관 배열 타입을 정의한다.
TYPE EMPLOYEE_ARRAY_TYPE IS TABLE OF EMPLOYEE_CURSOR%ROWTYPE INDEX BY BINARY_INTEGER;
-- 직원 연관 배열 타입의 변수를 정의한다.
V_EMPLOYEE_ARRAY EMPLOYEE_ARRAY_TYPE;
-- 연관 배열을 조작하는 인덱스 변수를 정의한다.
V_CURRENT_INDEX BINARY_INTEGER;
V_LAST_INDEX BINARY_INTEGER;
BEGIN
-- 직원 커서를 조회해 직원 연관 배열 데이터를 설정한다.
FOR EMPLOYEE_RECORD IN EMPLOYEE_CURSOR
LOOP
V_EMPLOYEE_ARRAY(EMPLOYEE_RECORD.EMPNO) := EMPLOYEE_RECORD;
END LOOP;
-- 연관 배열 데이터를 출력한다.
V_CURRENT_INDEX := V_EMPLOYEE_ARRAY.FIRST;
V_LAST_INDEX := V_EMPLOYEE_ARRAY.LAST;
LOOP
DBMS_OUTPUT.PUT_LINE(V_EMPLOYEE_ARRAY(V_CURRENT_INDEX).ENAME);
EXIT WHEN V_CURRENT_INDEX >= V_LAST_INDEX;
V_CURRENT_INDEX := V_EMPLOYEE_ARRAY.NEXT(V_CURRENT_INDEX);
END LOOP;
END;
728x90
반응형
그리드형(광고전용)
'Database > Oracle' 카테고리의 다른 글
[DATABASE/ORACLE] THE 의사 함수 : 중첩 테이블 컬럼 데이터 수정하기 (0) | 2019.11.03 |
---|---|
[DATABASE/ORACLE] THE 의사 함수 : 중첩 테이블 컬럼 데이터 삭제하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] THE 의사 함수 : 중첩 테이블 컬럼 데이터 추가하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] THE 의사 함수 : 중첩 테이블 컬럼 조회하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 객체 타입 사용하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 중첩 테이블을 테이블 컬럼으로 저장하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] VARRAY 타입 : LIMIT 함수를 사용해 최대 항목 수 구하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 중첩 테이블 : TRIM 함수를 사용해 항목 제거하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 중첩 테이블 : NEXT 함수를 사용해 다음 항목의 인덱스 구하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 중첩 테이블 : PRIOR 함수를 사용해 이전 항목의 인덱스 구하기 (0) | 2019.11.03 |
댓글을 달아 주세요