PL/SQL カーソルの実行方法メモ

メモだけ

暗黙的

-- 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』を入れる。

This entry was posted in PL/SQL, プログラミング関連, 備忘録. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です