이번에 쓸 내용은 PL/SQL 에서 사용하는
TYPE 변수명 TABLE OF RECORD 형식에 대한 내용이다.
사용방법
●%ROWTYPE 으로 정의 (미리 정의된 테이블의 레이아웃을 사용)
●RECORD 정의 (사용자가 레코드를 정의)
●TABLE OF DataType 정의 (VARRAY방식)
나는 위의 세가지 방법으로 많이 사용한다.
%ROWTYPE
1
|
TYPE TEMP_TABLE_OF_REC IS TABLE OF EMP%ROWTYPE INDEX BY BINARY_INTEGER;
|
cs |
EMP테이블의 컬럼타입을 전부 사용하겠다는 의미이다.
INDEX BY BINARY_INTEGER 는 RECORD의 인덱스를 자동으로 부여한다는 의미로 볼 수 있다.
즉 위의 선언한 TEMP_TABLE_OF_REC 레코드의 INDEX가 자동으로 부여된다.
RECORD 정의
1
2
3
4
5
6
7
|
TYPE EMP_RECORD IS RECORD( --RECORD TYPE 선언
EMPNM EMP.EMPNM%TYPE
,EMPNO EMP.EMPNO%TYPE
,GUBUN VARCHAR2(3)
);
TYPE TEMP_TABLE IS TABLE OF TEMP_RECORD; --TABLE OF RECORD TYPE 선언
|
cs |
첫번째 방법과는 다르게 미리 정의된 테이블의 컬럼타입 그대로 사용하는 것이 아니라
새로운 RECORD를 정의하고 TABLE OF RECORD에 사용한다.
TABLE OF DATATYPE
1
2
3
4
5
6
7
8
9
10
11
12
|
DECLARE
TYPE T_VC2VARRRAY4000 IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
VC2VARRAY4000 T_VC2VARRRAY4000 := T_VC2VARRRAY4000();
BEGIN
FOR i IN 1..3
LOOP
VC2VARRAY4000.EXTEND();
VC2VARRAY4000(i) := 'i';
END LOOP;
END;
|
cs |
해당 데이터타입별로 ARRAY형태를 만들 수 있다.
이번에 쓸 내용은 PL/SQL 에서 사용하는
TYPE 변수명 TABLE OF RECORD 형식에 대한 내용이다.
사용방법
●%ROWTYPE 으로 정의 (미리 정의된 테이블의 레이아웃을 사용)
●RECORD 정의 (사용자가 레코드를 정의)
●TABLE OF DataType 정의 (VARRAY방식)
나는 위의 세가지 방법으로 많이 사용한다.
%ROWTYPE
1
|
TYPE TEMP_TABLE_OF_REC IS TABLE OF EMP%ROWTYPE INDEX BY BINARY_INTEGER;
|
cs |
EMP테이블의 컬럼타입을 전부 사용하겠다는 의미이다.
INDEX BY BINARY_INTEGER 는 RECORD의 인덱스를 자동으로 부여한다는 의미로 볼 수 있다.
즉 위의 선언한 TEMP_TABLE_OF_REC 레코드의 INDEX가 자동으로 부여된다.
RECORD 정의
1
2
3
4
5
6
7
|
TYPE EMP_RECORD IS RECORD( --RECORD TYPE 선언
EMPNM EMP.EMPNM%TYPE
,EMPNO EMP.EMPNO%TYPE
,GUBUN VARCHAR2(3)
);
TYPE TEMP_TABLE IS TABLE OF TEMP_RECORD; --TABLE OF RECORD TYPE 선언
|
cs |
첫번째 방법과는 다르게 미리 정의된 테이블의 컬럼타입 그대로 사용하는 것이 아니라
새로운 RECORD를 정의하고 TABLE OF RECORD에 사용한다.
TABLE OF DATATYPE
1
2
3
4
5
6
7
8
9
10
11
12
|
DECLARE
TYPE T_VC2VARRRAY4000 IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
VC2VARRAY4000 T_VC2VARRRAY4000 := T_VC2VARRRAY4000();
BEGIN
FOR i IN 1..3
LOOP
VC2VARRAY4000.EXTEND();
VC2VARRAY4000(i) := 'i';
END LOOP;
END;
|
cs |
해당 데이터타입별로 ARRAY형태를 만들 수 있다.