メモだけ
暗黙的
-- FOR文を使う
BEGIN
FOR out_Cursor IN m_Cursor() LOOP
-- out_cursorから値を取得できる
-- 例
m_valuse := out_Cursor.valuse
END LOOP;
RETURN_VAL := 1;
EXCEPTION
RETURN_VAL := 0;
END;
明示的
-- OPENを使う BEGIN -- カーソル実行 OPEN m_Cursor(); -- 結果を1行ずつ取得 LOOP FETCH m_Cursor INTO out_Cursor; -- レコードを取得できなかった場合抜ける EXIT WHEN m_Cursor%NOTFOUND; -- レコードを出力 RETURN_VAL := out_Cursor.VALUE; END LOOP; -- カーソルをClose CLOSE m_Cursor; -- 例外処理 EXCEPTION WHEN OTHERS THEN -- 例外が起きた時も必ずcloseする IF m_Cursor%ISOPEN THEN CLOSE m_Cursor; END IF; RETURN_VAL := 0; END;
※テーブルの値を変更するカーソルを使用した場合は『COMMIT』を入れる。
