を通じて私は私が一度に5を表示し、look_item_cursorするためにそれを設定しようとしている複数のLOCATION_NAMEエントリを持っている私のカーソルPL SQL - ループのカーソル
をループの問題を抱えています。
CURSOR look_item_cursor IS
SELECT *
FROM (SELECT DISTINCT location_name
FROM inventory_info_v i
WHERE i.item_code = lr_item.item_code) a
WHERE rownum <= (ln_page + 4)
AND rownum >= ln_page;
元のクエリは正常にデータを返します。 ln_pageとlr_item.item_codeの両方は、カーソルが呼び出された時点で埋められます。私は一般的な例外ときに取得していますが
は私が
look_item_cursor%ROWTYPE
として割り当てられているlv_location_nameと
OPEN look_item_cursor;
BEGIN
FOR lv_location_name IN look_item_cursor LOOP
pv_message_return := pv_message_return ||
lv_location_name.location_name;
END LOOP;
END;
CLOSE look_item_cursor;
で、5返さLOCATION_NAME、一度に一つのそれぞれを取得しようそれはクエリを実行し、なぜ私は分からない。どんな助けもありがとう!
**完全なスタックトレースを投稿してください。 – OldProgrammer
カーソル 'FOR'ループを使用している場合(あなたの例ではしようとしています)、1.カーソルを明示的にオープンしないでください(カーソル' FOR'ループがあなたのために行います)。 2. 'lv_location_name'変数(カーソル' FOR'ループはあなたのために行います)と同じように、カーソルループ変数を明示的に宣言しないでください。つまり、カーソルを明示的に開くか、明示的にフェッチして閉じるか、カーソルの 'FOR'ループを使用します。これはほとんどの作業を行います(カーソルをオープンし、カーソル変数を宣言し、カーソルをフェッチして閉じます)。 –
非常に参考になりました、ありがとうございます。このタイプのループには「終了時」を含める必要がありますか?私は5番目と最後のエントリを割り当てると、エラーがあるので尋ねるEDIT:それは愚かなことだった気がしない。 –