Oracle PL/SQL 강좌
PL/SQL Table of Record 8 6 52,328

by 김정식 TABLE OF RECORD DBMS_OUTPUT PUT_LINE 복합 데이터 타입 [2002.01.20]


  PL/SQL TABLE변수 선언과 비슷하며 데이터타입을 %ROWTYPE으로 선언하면 된다.

  PL/SQL TABLE과 RECORD의 복합 기능을 한다.

PL/SQL Table Of Record 문법

 
-- 선언 예제
TYPE dept_table_type IS TABLE OF dept%ROWTYPE
INDEX BY BINARY_INTEGER; 

-- Each element of dept_table  is a record 
dept_table   dept_table_type;

-- 아래 프로시저에서 사용된 예제를 보면 이해가 쉽게 갈 것이다.
    

PL/SQL Table Of Record 예제

 
CREATE OR REPLACE PROCEDURE Table_Test
  IS
  
    i BINARY_INTEGER := 0;
 
    -- PL/SQL Table of Record의 선언
    TYPE dept_table_type IS TABLE OF dept%ROWTYPE
    INDEX BY BINARY_INTEGER;
 
    dept_table dept_table_type;
 
  BEGIN
  
    FOR dept_list IN (SELECT * FROM dept) LOOP
 
      i:= i+1;
  
      -- TABLE OF RECORD에 데이터 보관
      dept_table(i).deptno := dept_list.deptno ;     
      dept_table(i).dname := dept_list.dname ;
      dept_table(i).loc   := dept_list.loc ;
 
    END LOOP;
 
    FOR cnt IN 1..i LOOP
 
       -- 데이터 출력
       DBMS_OUTPUT.PUT_LINE( '부서번호 : ' || dept_table(cnt).deptno || 
                             '부서명 : ' ||  dept_table(cnt).dname || 
                               '위치 : ' || dept_table(cnt).loc );
 
    END LOOP;
 
 END;
/
 
 
SQL> SET SERVEROUTPUT ON ;

SQL> EXECUTE Table_test;
부서번호 : 10부서명 : ACCOUNTING위치 : NEW_YORK
부서번호 : 20부서명 : RESEARCH위치 : DALLAS
부서번호 : 30부서명 : 인사과위치 : CHICAGO
부서번호 : 40부서명 : OPERATIONS위치 : BOS%TON
 
PL/SQL 처리가 정상적으로 완료되었습니다.
    

- 강좌 URL : http://www.gurubee.net/lecture/1049

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 야함나르 [2006.03.24 13:38:37]
테이블을 배열로 각 행을 저장하는것과 같은 듯하네요...^^...resultset 과 같은듯

by 고훈 [2006.04.16 16:25:47]
흠.. 너무 좋네요~ 오라클..
강의도 감사드립니다..

by ㅎㅎㅎ [2006.12.01 21:15:23]
BOS%TON <--- 원래 이렇게 찍히는 건가요?

by 김윤경 [2007.11.08 15:59:11]
어렵지만 재미있는 기능이네요.

by 러스티 [2009.08.28 14:07:22]
%ROWTYPE 대신에 record타입이 들어가는건 안되나요?

by 손님 [2012.04.27 13:48:49]

이타입을 다른 프로시져로 재사용하려면?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입