0

我有一个游标查询,它返回两个表的记录,如下所示。

cursor c1 is
select teb.*,te.*
from  table1 teb, table2 te
where te.col1=teb.col2;

我应该如何使用批量收集在收藏中收集它们?

我试过了:

type tab_rec is table of table1%rowtype index by pls_integer;
var_rec tab_rec;
type tab_rec1 is table of table2%rowtype index by pls_integer;
var_rec1 tab_rec1;

begin
   open c1;
   fetch c1 bulk collect into var_rec,ver_rec1;
   close c1;

但上面似乎不起作用。

4

1 回答 1

2

阅读精品手册:%ROWTYPE 属性

%ROWTYPE属性允许您声明一个记录变量,该变量表示数据库表或视图的完整或部分行。对于整行或部分行的每一列,记录都有一个具有相同名称和数据类型的字段。如果行的结构发生变化,那么记录的结构也会相应地发生变化。

%rowtype属性也适用于游标:

-- c1 is a valid cursor
v_rec c1%rowtype;
fetch c1 bulk collect into v_rec;

另请参阅Oracle 文档中的此示例

于 2015-08-14T11:25:07.360 回答