记录是一种单行多列的数据结构,集合是一种单列多行的数据结构。集合类似于高级语言中的列表或一维数组,主要用来存储具有相同数据类型的元素的有序集合,
每一个元素都有唯一的下标来标识当前元素在集合中的位置。
索引表:由键值对组成,类似于其他语言的哈希表,键是唯一用来识别索引表中元素的识别符,类似于数组中的下标。索引表的下标既可以是整数,也可以是字符串。
索引表不能被存储在Oracle数据库表中,仅仅只是内存表,只能在PL/SQL中使用,如果需要在内存中保存和维护列表,则优先选择索引表。
特点:
(1)索引表不需要进行初始化,没有构造语法,在为其赋值之前不需要分配初始空间,因此不需要动态地扩展其容量(类似于链表)。
(2)索引表的下标既可以是整数,也可以是变长的字符串 integer/varcahar2。
(3)当使用数字类型作为索引下标时,索引键可以为正数、负数或 0,并且数字可以不连续。
语法:
TYPE type_name IS TABLE OF element_type [NOT NULL]
INDEX BY [ PLS_INTEGER | BINARY_INTEGER | VARCHAR2(size) ] ;
eg: TYPE hiredate_idx_table IS TABLE OF DATE INDEX BY PLS_INTEGER;
v_hire_date hiredate_idx_table;