oracle中数组的定义
时间: 2023-11-30 17:04:20 浏览: 80
在Oracle中,数组被称为“集合(Collection)”,可以通过定义PL/SQL中的“VARRAY”或“TABLE”类型来实现。
1. VARRAY类型:
VARRAY是Variable Array的缩写,表示变长数组类型。定义VARRAY类型需要指定元素的数据类型和数组的最大长度。例如:
```
DECLARE
TYPE MyVarray IS VARRAY(10) OF NUMBER;
my_arr MyVarray := MyVarray(1,2,3,4,5);
BEGIN
DBMS_OUTPUT.PUT_LINE(my_arr(1));
END;
```
上面的代码定义了一个最大长度为10的VARRAY类型MyVarray,元素的数据类型为NUMBER。在声明变量时,可以直接初始化数组的值。
2. TABLE类型:
TABLE类型是一种基于数据库表的集合类型,可以定义一个与数据库表结构相同的集合类型。例如:
```
DECLARE
TYPE MyTable IS TABLE OF employees%ROWTYPE;
my_arr MyTable;
BEGIN
SELECT * BULK COLLECT INTO my_arr FROM employees WHERE department_id = 10;
FOR i IN my_arr.FIRST..my_arr.LAST LOOP
DBMS_OUTPUT.PUT_LINE(my_arr(i).last_name);
END LOOP;
END;
```
上面的代码定义了一个类型为MyTable的TABLE类型,该类型的结构与employees表的结构相同。在声明变量时,可以直接使用SELECT语句将数据库表中的数据读取到集合中。
阅读全文