PL/SQL 상의 테이블은 일종의 1차원 배열형태이다.

테이블 크기에 제한이 없을 뿐 아니라 데이터가 들어옴에 따라 그 ROW 수 역시 증가를 하며, BINARY_INTEGER 타입의 INDEX로 순서가 정해진다. 또한 하나의 테이블에는 한 개의 컬럼 데이터를 저장한다.

다음은 그 예제이다.

CREATE OR REPLACE PROCEDURE TEST(data IN TABLE.NO%TYPE)

IS

TYPE v_data IS TABLE OF TABLE.NO%TYPE

INDEX BY BINARY_INTEGER;

v_table v_data;

i BINARY_INTEGER := 0;

BEGIN

FOR list IN (SELECT NO FROM TABLE WHERE NO = data) LOOP

v_table(I) := list.NO;

END LOOP;

END;