(8.0.29)
[1]ラベルによる方法
drop procedure proc1;
delimiter //
create procedure proc1()
begin
declare i int;
declare j int;
set i = 1;
LOOP1: while i <= 3 do
set j = 1;
while j <= 5 do
select i,j;
if i = 2 and j = 2 then
leave LOOP1;
end if;
set j = j + 1;
end while;
set i = i + 1;
end while LOOP1;
end
//
delimiter ;
call proc1();
[2]goto文による方法
使用できない模様
(19c)
[1]ラベルによる方法
set serveroutput on
declare
begin
<<LOOP1>>
for i in 1..3 loop
for j in 1..5 loop
dbms_output.put_line('i,j: ' || i ||','|| j);
exit LOOP1 when( i = 2 and j = 2 );
end loop;
end loop;
end;
/
[2]goto文による方法
set serveroutput on
declare
begin
for i in 1..3 loop
for j in 1..5 loop
dbms_output.put_line('i,j: ' || i ||','|| j);
if i = 2 and j = 2 then
goto END1;
end if;
end loop;
end loop;
<<END1>>
null;
end;
/
(14)
[1]ラベルによる方法
do $$
declare
begin
<<LOOP1>>
for i in 1..3 loop
for j in 1..5 loop
raise info 'i,j: %,%' ,i,j;
exit LOOP1 when( i = 2 and j = 2 );
end loop;
end loop;
end;
$$;
[2]goto文による方法
使用できない模様
(2019)
[1]ラベルによる方法
使用できない模様
[2]goto文による方法
begin
set nocount on;
declare @i int;
declare @j int;
set @i = 1;
while (@i <= 3)
begin
set @j = 1;
while (@j <= 5)
begin
print '@i,@j: '+cast(@i as varchar)+','+cast(@j as varchar);
if @i = 2 and @j = 2
goto END1;
set @j = @j + 1;
end;
set @i = @i + 1;
end;
end;
END1:
go