メモだけ
暗黙的
-- 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』を入れる。