私はループしてselect文の条件に基づいて変数をインクリメントしようとしているselect文を持っていて、次に変数をout
として返します。いくつかのフロントエンドコードです。私はOracle 11gを使用しています。私はこれを行うことができるいくつかの方法を見ています...しかし、私はどちらが最良の方法であるかわかりません。私は以下にしようとしていることのいくつかを持っていますが、混乱のためにもう一度やめました。pl/sqlループレコードselect oracle plsql
まず、私はここで
PROCEDURE SEEKER (pMonkeyID IN Number, vMarkCounter OUT Number)
AS
BEGIN
CURSOR seeker_cur IS
Select Mokney_approved, Monkey_vaulted
from MonkeyBookApps
where MonkeyID = pMonkeyID
and Monkey_doc_type = 'BANANA'
order by docu_approv_timestamp,monkey_doc_type,monkey_doc_approved desc
OPEN seeker_cur;
begin
OPEN Seeker_cur;
vMarkCounter := 0;
「変数に」私のPROCを設定しています、私はわからないです一部です。条件が満たされていない場合や、if文を実行して、1つ以上のレコードが存在するかどうかを何らかの方法で判断する必要がある場合は、ループして終了する必要がありますか?もしそうなら、それはどのように機能するでしょうか?もう一方の方法をやり遂げることのメリットはありますか?だから... ...私は(下記)やろうとしていますどのようなsudoのコードに行きます:
FOR (however many records) in Seeker_cur
IF seeker_cur (not found) or (returns no records)
EXIT or (break for loop);
ELSE
LOOP
vMarkCounter := vMarkCounter + 1;
EXIT WHEN seeker_cur is out of records (somehow)
END IF;
END LOOP;
END;
END SEEKER;
私はこれを行うには、いくつかの方法があることを確認しています。どのような方法をお勧めしますか?
ここでCOUNT()を使用していない理由はありますか?なぜループするのですか? – eaolson