oracle中的分支与循环语句

时间:2024-01-07 08:44:02

分支语句 if的三种写法
一, if 2 < 1 then
dbms_output.put_line('条件成立');
end if;

二, if 2 < 1 then
dbms_output.put_line('条件成立');
else
dbms_output.put_line('条件不成立');
end if;

三, if 2 < 1 then
dbms_output.put_line('条件成立');
elsif 4 > 3 then
dbms_output.put_line('条件不成立');
elsif 5 > 6 then
dbms_output.put_line('条件不成立');
end if;

在SQL中else if是需要写成elsif的, 这里需要重点注意, 在数据库编程的时候可以使用美化器来将代码缩进.

case语句

case v_case
when 1 then
dbms_output.put_line('输出数字1');
when 2 then
dbms_output.put_line('输出数字2');
when 100 then
dbms_output.put_line('输出数字100');
else
dbms_output.put_line('没有输出');
end case;

搜索式的case语句

case
when 8 > 7 then
dbms_output.put_line('8>7成立');
when 9 > 8 then
dbms_output.put_line('9>8成立');
else
dbms_output.put_line('都不成立');
end case;

在分支语句中, 还有一点需要注意的是, 如果有一个条件成立, 能符合条件, 那么程序就会自动结束当前的语句, 不会再继续向下执行.

loop
v_case := v_case - 1;
dbms_output.put_line(v_case);
if v_case = 90 then
dbms_output.put_line('循环结束, v_case的值为 ' || v_case);
exit;
end if;
end loop;
在loop基本循环操作中一定记得加上exit, 否则会有可怕的事情发生.

while...loop循环
while v_case > 80 loop
v_case := v_case - 1;
dbms_output.put_line('v_case = ' || v_case);
end loop;

for...loop循环
for inx in 1 .. 10 loop
dbms_output.put_line(inx);
end loop;
reverse 是一个关键字, 表示将循环倒过来显示,写在in的后面.