條件語句
--方法一
declare
? ? v_sum user.sum%type;
begin
? ? select sum into v_sum from user from id=1;
? ? if v_sum>=100 then dbms_output.put_line('優(yōu)秀');
? ? elsif v_sum>=60 then dbms_output.put_line('良好');
? ? else dbms_output.put_line('差生');
? ? end if;
end;
--方法一修改版
declare
v_sum user.sum%type;
v_temp varchar2(20);
begin
select sum into v_sum from user from id=1;
if v_sum>=100 then v_temp := '優(yōu)秀';
elsif v_sum>=60 then v_temp := '良好';
else v_temp := '差生';
dbms_output.put_line(v_temp);
end if;
end;
--方法二
declare
? ? v_name varchar2(10);
? ? v_temp varchar2(10);
begin
? ? select name into v_name from user where is=1;
? ? v_temp := case _name when '張三' then ‘A’
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?when '李四' then 'B'
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? when '王五' then 'C'
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else '趙六'
? ? ? ? ? ? ? ? ? ? ? ? ?end;
dbms_output.put_line(v_temp);
end;
循環(huán)語句
--方法一(循環(huán)1-100)
declare
? ? v_i number(5) :=1;--初始化條件
begin
? ? loop? ?--循環(huán)體
? ? ? ? dbms_output.put_line(v_i);??
? ? ? ? v_i := v_i + 1;? ?--迭代條件
? ? ?exit when v_i >= 100;? ?--循環(huán)條件
? ? end loop;
end;
--方法二
declare
? ? v_i number(5);? ?--初始化條件
begin
? ? while v_i<= 100 loop
? ? ? ? ? ? dbms_output.put_line(v_i);
? ? ? ? ? ? v_i := v_i + 1;
? ? end loop;
end;
--方法三
begin
? ? for i in 1..100 loop
? ? ? ? dbms_output.put_line(i);
? ? end loop;
end;
--方法四(輸出2-100的質數(shù)砖瞧,goto標簽)
declare
v_flag number(1) :=1;
begin
? ? for v_i in 2..100 loop
? ? ? ? for v_j in 2..sqrt(v_i) loop
? ? ? ? ? ? ? ?if mod(v_i,v_j)=0? then v_flag :=0;
? ? ? ? ? ? ? ? goto label;? ? ?--當執(zhí)行到這里時环揽,跳轉到指定標簽
? ? ? ? end if;
? ? ? ? end loop;
? ? ? ?<<label>>? ?--標簽
? ? ? ? if v_flag=1 then dbms_output.put_line(v_i);
? ? ? ? end if;
? ? ? ? v_i :=1;
? ? end loop;
end;
--方法五(打印1-100,到50時梢为,跳出循環(huán))
begin
? ? for i in 1..100 loop
? ? ? ? if i=50 then goto label;
? ? ? ? end if;;
? ? ? ? dbms_output.put_line(i);
? ? end loop;
? ? ? ? <<label>>
? ? ? ? dbms_output.put_line('打印結束');
end;
--方法五修改版
begin
? ? for i in 1..100 loop
? ? ? ? if i=50 then dbms_output.put_line('打印結束');
? ? ? ? exit;
? ? ? ? end if;
? ? ? ? dbms_output.putl_line(i);
? ? end loop;
end;