0

以下のような 2 つのテーブルのレコードを返すカーソル クエリがあります。

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 に答える