プロシージャから2つのREFカーソルを戻そうとしましたが、少し問題があります。私がしようとしているのは、最初のカーソルから情報を取得し、そこからいくつかのフィールドを選択して他の情報に結合し、その結果をテーブル変数に貼り付けることです...次に、カーソル。しかし、私はこれをコンパイルすることはできません。誰かが私が間違ってやっていることを教えてもらえますか?Oracle 11g:プロシージャ内でのカーソルの使用
type T_CURSOR is REF CURSOR
procedure FetchSL3Details_PRC
(
c_items out T_CURSOR,
c_identifiers out T_CURSOR,
p_niin in char
) as
v_idents IDENTIFIER_TABLE_TYPE:= IDENTIFIER_TABLE_TYPE();
BEGIN
open c_items for
select
its.item_set_id,
its.niin,
its.parent_niin,
its.commodity_id,
its.service_type,
its.sl3_type,
its.qty,
its.created_id,
its.created_dt,
its.modified_id,
its.modified_dt
from
item_set its
start with its.niin = p_niin
connect by prior its.niin = its.parent_niin;
for item in c_items loop
v_idents.extend;
v_idents(v_idents.LAST) := identifier_row_type(item.commodity_id,
get_group_name_fun(item.commodity_id),
0);
v_idents.extend;
v_idents(v_idents.LAST) := identifier_row_type(item.created_id,
get_formatted_name_fun(item.created_id),
0);
v_idents.extend;
v_idents(v_idents.LAST) := identifier_row_type(item.modified_id,
get_formatted_name_fun(item.modified_id),
0);
end loop;
open c_identifiers for
select
distinct(v.id),
v.name,
v.type
from
v_idents v;
END FetchSL3Details_PRC;
T_CURSORとは何ですか?私は一般に、オープン・カーソルを保持する変数の型としてsys_refcursorを使用します。 –
エラーコードとは何ですか? –
T_CURSORは参照カーソルのtypedefです... – Sam