読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

ストアドプロシージャ FORループ

複数行の問い合わせ結果を扱いたい場合はFOR IN SELECT文やFOR IN EXECUTE文を用いればよい。

FOR record | row IN select_query LOOP
	statements
END LOOP;
FOR record | row IN EXECUTE sql LOOP
	statements
END LOOP;

statements内で結果を返したい場合はRETURNではなく、RETURN NEXTを使わなければいけない。たとえばこんな感じ。

FOR row_data IN SELECT * FROM table WHERE ticket_id= id LOOP
	IF row_data.value > 1000 THEN
		RETURN NEXT row_data;
	END IF;
END LOOP;