SQLの窓

2011年09月10日


Oracle : PL/SQL : カーソルを使った一般的なループ処理を行うプロシージャ

カーソルは、PL/SQL 内で記述された SELECT 構文に割り当てられます。定義された
「呼び名」で OPEN、FETCH、CLOSE という一般的なファイルの I/O と同様の処理を
行います。

FETCH 時に行データがメモリに受け渡されますが、そのメモリは事前に定義しておく
必要があります。このサンプルでは最も簡単な例として、定義されたカーソルと同じ
フォーマットを持つレコード変数を定義しています

COMMENT_REC cur_main%ROWTYPE;

これ以外でも、列データを一つづつ FETCH の INTO 句に置く事もできます

カーソルでは、cur_main%NOTFOUND という書式( または cur_main%FOUND ) で、条件
として利用して FETCH 後の処理を記述する事が可能です。
CREATE OR REPLACE PROCEDURE LIST_MEMBER
(
	/* カーソルの範囲指定用  */
	PM_STRING IN VARCHAR2
)

/**********************************************************/
/* 変数の定義 */
/**********************************************************/
AS
	RET_VALUE	VARCHAR2(2000);
	WK_VALUE	VARCHAR2(2000);

	/* カーソルの定義(主に複数読み込み用)  */
	CURSOR cur_main IS
		SELECT * FROM 社員マスタ
		where 社員コード <= PM_STRING;

	/* cur_main に対応する社員マスタのフォーマット  */
	COMMENT_REC cur_main%ROWTYPE; 

/**********************************************************/
/* 処理開始 */
/**********************************************************/
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');
	DBMS_OUTPUT.PUT_LINE('デバッグ:引数:'||PM_STRING);

	/* カーソルを開く */
	OPEN cur_main;

	/* ループ処理(ブロック) */
	LOOP 
		/* 定義したレコード変数に読み込み */
		FETCH cur_main INTO COMMENT_REC;
		/* カーソルに対するシステム変数でデータ終わりを判断 */
		if cur_main%NOTFOUND then 
			/* ループ処理を脱出 */
			EXIT; 
		end if; 

		/* デバッグの表示(実際は更新処理等を行う */
		DBMS_OUTPUT.PUT_LINE('結果:'||COMMENT_REC.氏名);
	 
	END LOOP; 

	/* カーソルを閉じる */
	CLOSE cur_main;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
$if 1=1 $then
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
$end
END;

関連する記事

PL/SQL : プロシージャの呼び出し
Oracle : PL/SQL : Function のサンプルと使い方
PL/SQL : Function 雛形



タグ:Oracle PL/SQL
posted by lightbox at 2011-09-10 08:33 | Oracle : PL/SQL | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり