三流備忘録OracleのSQL PL/SQL 関数 ついての備忘録
ホーム >> PL/SQL備忘録 >> カーソルの応用

カーソルの応用

カーソルを使用した更新

DECRARE

	CURSOR CSR1 IS
		SELECT dept_id
		FROM   T_HOGE
		WHERE  dept_id BETWEEN 1 TO 5
		FOR UPDATE; --FOR UPDATEを付ける
		
BIGIN
	
	/*****************************************************************
	・UPDATE...WHERE CURRENT OF カーソル名;
	/*****************************************************************
	
	FOR CSR1_REC IN CSR1 LOOP
		
		UPDATE T_HOGE SET dept_id = dept_id + 5 
			WHERE CURRENT OF CSR1;

	END LOOP;
END;

カーソルを使用した削除

DECRARE

	CURSOR CSR1 IS
		SELECT dept_id
		FROM   T_HOGE
		WHERE  dept_id BETWEEN 1 TO 5
		FOR UPDATE; --FOR UPDATEを付ける
		
BIGIN
	
	/*****************************************************************
	・UPDATE...WHERE CURRENT OF カーソル名;
	/*****************************************************************
	
	FOR CSR1_REC IN CSR1 LOOP
		
		DELETE FROM  T_HOGE 
			WHERE CURRENT OF CSR1;

	END LOOP;
END;