1、代码如下
--嵌套表的添加和删除
set serveroutput on;
declare
--声明:嵌套表类型
type bookName is table of varchar2(30);
--初始化一个:嵌套表
v_book1 bookName := bookName('数据库', '高等数学', '软件工程');
--声明一个变量
temp binary_integer := 1;
begin
--v_book1嵌套表:拓展一个元素,并赋值
v_book1.extend;
v_book1(v_book1.last) := 'C++';
dbms_output.put_line('--------------------运行结果:开始线-------------------------');
--拓展了:(一个元素)输出看一下
for i in 1..v_book1.count
loop
dbms_output.put_line(v_book1(i));
end loop;
dbms_output.put_line('--------------------运行结果:分割线-------------------------');
--拓展两个元素,同时把(嵌套表中的第三个元素的值:赋值给这两个元素)
v_book1.extend(2, 3);
--拓展了:(两个元素)输出看一下
for i in 1..v_book1.count
loop
dbms_output.put_line(v_book1(i));
end loop;
dbms_output.put_line('--------------------运行结果:分割线-------------------------');
--删除嵌套表(最后两个元素)
v_book1.trim(2);
--删除了:(两个元素)输出看一下
for i in 1..v_book1.count
loop
dbms_output.put_line(v_book1(i));
end loop;
dbms_output.put_line('--------------------运行结果:分割线-------------------------');
--删除嵌套表(2到3号)元素
v_book1.delete(2,3);
--删除了:(2, 3号元素),变为(稀疏存储了),遍历方法改变
for i in 1..v_book1.count
loop
dbms_output.put_line(v_book1(temp));
--获取temp的一个位置的:索引
temp := v_book1.next(temp);
end loop;
dbms_output.put_line('--------------------运行结果:分割线-------------------------');
end;
/
2、运行结果解释