procedure P_names( A OUT NOCOPY A_Rec_Type
, B OUT NOCOPY B_Tbl_Type);
在上面的PL / SQL过程中,如何将值传递给作为记录类型的参数A和B. 和表类型参数?
答案 0 :(得分:1)
因为它们是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;
答案 1 :(得分:0)
使用类似
的内容a(i).field_name := <your value>
b.field_name := <your value> ;
其中i是表格中的索引