procedure P_names( A OUT NOCOPY A_Rec_Type
, B OUT NOCOPY B_Tbl_Type);
在上述 PL/SQL 过程中,如何将值传递给记录类型和表类型参数的参数 A 和 B?
procedure P_names( A OUT NOCOPY A_Rec_Type
, B OUT NOCOPY B_Tbl_Type);
在上述 PL/SQL 过程中,如何将值传递给记录类型和表类型参数的参数 A 和 B?
因为它们是 OUT 参数,所以您需要使用 PL/SQL 变量调用它们,如下所示:
declare
lrt_a A_Rec_Type;
lrt_b B_Tbl_Type;
begin
p_names (lrt_a, lrt_b);
end;
/
在内部,您像任何其他变量一样为它们分配值。因为这些是记录类型,所以通常的期望是您将使用查询填充它们:
begin
select * into a
from table_a
where rownum = 1;
select * into b
from table_b
where rownum = 1;
end;
请注意,我在那里使用了 ROWNUM。这是因为记录类型接受单行,因此您需要适当地限制查询。如果要接受多行,则需要使用嵌套表类型:
type a_recs_type is table of a_rec_type;
使用类似的东西
a(i).field_name := <your value>
b.field_name := <your value> ;
我是你表中的索引