前提是先在数据库中定义一个二维数组的类型
CREATE TYPE typ_array_foods IS table OF typ_array_food;
然后开发示例程序,如下:
DECLARE
l_food typ_array_food := typ_array_food();
l_foods typ_array_foods := typ_array_foods();
BEGIN
l_food.extend(3);
l_food(1) := obj_food('Scrambled Eggs', 'Protein', 'Yellow');
l_food(2) := obj_food('Deluxe Salad', 'Vegetables', 'Mostly Green');
l_food(3) := obj_food('Tofu and Rice', 'Protein', 'White');
l_foods.extend(1);
l_foods(1) := l_food;
dbms_output.put_line('foods(1,1)=' || l_foods(1)(1).name);
l_foods.extend(1);
l_foods(2) := l_food;
l_food.trim(l_food.count);
for i in 1 .. 2 loop
l_food.extend(1);
l_food(i) := obj_food('Scrambled Eggs '||i, 'Protein', 'Yellow');
end loop;
l_foods.extend(1);
l_foods(3) := l_food;
for i in 1 .. l_foods.count loop
for j in 1 .. l_foods(i).count loop
dbms_output.put_line('foods('||i||','||j||')=' || l_foods(i)(j).name);
end loop;
end loop;
END;
通过collection的trim、extend等操作,我们很容易理解它。在现实开发中,多数情况下使用的类型是Nested tables。