📅  最后修改于: 2023-12-03 15:27:01.683000             🧑  作者: Mango
在 PL/SQL 中,我们可以通过以下两种方式来添加列表:
下面,我们将分别介绍这两种方式的使用方法。
数组是一种简单而强大的数据结构,可以用于存储相同类型的数据。在 PL/SQL 中,我们可以使用以下方式声明和初始化数组:
DECLARE
TYPE num_list IS VARRAY(100) OF NUMBER; -- 声明数组类型
nums num_list := num_list(1, 2, 3, 4, 5); -- 初始化数组
BEGIN
-- 查询数组中的元素
FOR i IN 1..nums.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(nums(i)); -- 输出数组元素
END LOOP;
END;
输出结果为:
1
2
3
4
5
在上面的例子中,我们声明了一个名为 num_list
的数组类型,并初始化了一个名为 nums
的数组变量,其中包含了 $1-5$ 这 $5$ 个整数元素。使用 FOR LOOP
循环,我们可以遍历该数组中的元素,并使用 DBMS_OUTPUT.PUT_LINE
输出每个元素的值。
集合是一种适用于动态列表的数据结构,可以用于存储不同类型的数据。在 PL/SQL 中,我们可以使用以下两种集合类型:
Nested Tables
: 嵌套表(collection type)Varrays
: 变长数组(variable-array)以下是使用 Nested Tables
添加列表的示例:
DECLARE
TYPE nested_table IS TABLE OF VARCHAR2(50); -- 声明嵌套表类型
nt nested_table := nested_table(); -- 初始化空的嵌套表变量
BEGIN
-- 向嵌套表中添加元素
nt.EXTEND(3); -- 扩展嵌套表并分配空间
nt(1) := 'apple';
nt(2) := 'banana';
nt(3) := 'cherry';
-- 查询嵌套表中的元素
FOR i IN 1..nt.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(nt(i)); -- 输出嵌套表元素
END LOOP;
END;
输出结果为:
apple
banana
cherry
在上面的例子中,我们声明了一个名为 nested_table
的嵌套表类型,并初始化了一个名为 nt
的空嵌套表变量。然后,我们使用 EXTEND
方法扩展嵌套表的长度,并使用 nt
对象的下标方式为嵌套表添加若干字符串元素。最后,使用 FOR LOOP
循环遍历该嵌套表中的元素,并使用 DBMS_OUTPUT.PUT_LINE
输出每个元素的值。
集合类型的 Varrays
和嵌套表(Nested Tables
)的区别在于,前者支持多维数组,并且每个元素占用空间相等,而后者则只支持一维数组,并且每个元素的大小可以不同。