Oracle10g oraclepl/sql类型

Oracle10g oraclepl/sql类型,oracle10g,Oracle10g,是否可以在内存中填充一些oracle对象(如集合)并在其他pl/sql块中使用它?比如: create type myType as objects (id number, name varchar2(40)); create type myTabType is table of myType; procedure populateMyTabType is vType myTabType := myTabType(); begin for i in (select id,name

是否可以在内存中填充一些oracle对象(如集合)并在其他pl/sql块中使用它?比如:

create type myType as objects
(id number, name varchar2(40));
create type myTabType is table of myType;
procedure populateMyTabType is
   vType myTabType := myTabType();
begin
   for i in (select id,name
             from employees) loop
         vType.extend;
         vType(vType.last) := myType(i.id, i.name);
   end loop;
end;
现在我想通过pl/sql块来迭代myTabType。 我能做这个吗?怎么做

谢谢你

例如:

create type myType as object
(id number, name varchar2(40));
create type myTabType is table of myType;

create or replace function populateMyTabType 
return myTabType
is
   vType myTabType := myTabType();
begin
  for i in (select 1 id,'name' name
              from dual) loop
         vType.extend;
         vType(vType.COUNT) := myType(i.id, i.name);
  end loop;
  return vType;
end populateMyTabType;

create or replace procedure iterateMyTabType(
  p_mytype IN myTabType
)
is
begin
  for i in p_mytype.FIRST..p_mytype.LAST
  LOOP
    dbms_output.put_line(p_mytype(i).id || ' ' || p_mytype(i).name);
  end loop;
end iterateMyTabType;

begin
  iterateMyTabType(populateMyTabType);
end;

1 name
但如果可以,你需要使用


PS:请注意,我更改了
populateMyTabType
for
子句中的
select
语句,您需要使用自己的选择。

您想做什么?我不明白,如果您想迭代
vType
变量,请在vType.FIRST..vType.LAST循环中为I使用
。。。端环是的,但我想填充它,而不是通过另一个pl/sql来实现。我的意思是,在我运行这个过程之后,从不同的pl/sql块来迭代集合,正如您所说的。