以前两篇文章介绍了使用Collection和更新Collection的方法,这篇文章将要介绍如果需要生成一个新的Collection并且向其中添加数据的方法。
procedure
insert_object(d
in
dept_array, d2 out dept_array)
is
begin
-- First way to insert data into a new array.
SELECT CAST (MULTISET
( SELECT DNO, name, location FROM department_teststruct) AS
dept_array)
INTO l_dept_array
FROM DUAL;
-- Second to insert data into a new array.
d2 : = dept_array();
FOR j IN 1 .. d. COUNT LOOP
d2.EXTEND;
d2(j) : = department_type(d(j).dno, d(j).name, d(j).location);
END LOOP;
-- Test data
for j in 1 .. d2. count loop
-- update
d2(j).location : = ' New Loc2_ ' || j;
INSERT INTO department_teststruct
VALUES
(d2(j).dno || j, d2(j).name, d2(j).location);
end loop;
end insert_object;
begin
-- First way to insert data into a new array.
SELECT CAST (MULTISET
( SELECT DNO, name, location FROM department_teststruct) AS
dept_array)
INTO l_dept_array
FROM DUAL;
-- Second to insert data into a new array.
d2 : = dept_array();
FOR j IN 1 .. d. COUNT LOOP
d2.EXTEND;
d2(j) : = department_type(d(j).dno, d(j).name, d(j).location);
END LOOP;
-- Test data
for j in 1 .. d2. count loop
-- update
d2(j).location : = ' New Loc2_ ' || j;
INSERT INTO department_teststruct
VALUES
(d2(j).dno || j, d2(j).name, d2(j).location);
end loop;
end insert_object;
有问题Email我。