oracle-存储过程-循环

时间:2025-03-10 08:28:46
CREATE OR REPLACE
PROCEDURE "loop" 
AS
/*
	循环1-100 用三种方式
*/

v_i NUMBER := 1;
v_j NUMBER := 1;
BEGIN
  -- 方式1 
	loop 
		dbms_output.put_line(v_i);
		v_i := v_i + 1;
	exit when v_i > 100;
	end loop;
	
	-- 方式2
	while v_j <= 100 loop
		dbms_output.put_line(v_j);
		v_j := v_j + 1;
	end loop;
	
	-- 方式3 正序输出
	for c in 1 .. 100 loop
		dbms_output.put_line(c);
	end loop;
	
	-- 方式3 倒序输出
	for c in reverse 1 .. 100 loop
		dbms_output.put_line(c);
	end loop;
	
END;
CREATE OR REPLACE
PROCEDURE "loop2" 
AS
BEGIN
	-- 打印 1-100的自然数,当打印到50时,跳出循环,输出打印结束
	-- goto 跳出循环 到指定位置  exit相当于break;
	for c in 1 .. 100 loop 
		dbms_output.put_line(c);
		if c = 50 then 	
			goto lable;
		end if;
	end loop;
  <<lable>>
 	dbms_output.put_line('打印结束');
	
	for c in 1 .. 100 loop 
		dbms_output.put_line(c);
		if c = 50 then 	
			dbms_output.put_line('打印结束'); exit;
		end if;
	end loop;
	
END;