-1
procedure P_names(  A OUT NOCOPY  A_Rec_Type
                     ,  B  OUT NOCOPY B_Tbl_Type);

在上述 PL/SQL 过程中,如何将值传递给记录类型和表类型参数的参数 A 和 B?

4

2 回答 2

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;
于 2013-07-12T13:06:09.107 回答
0

使用类似的东西

a(i).field_name := <your value>


b.field_name := <your value> ;

我是你表中的索引

于 2013-07-12T11:41:42.203 回答