oracle--流程控制语句
1 for循环
for var1 in cur_name loop --var1 自动的record 类型的变量 cur_name为游标名,这里也可以用select语句代替
sql语句
end loop;
例如:
set serveroutput on
begin
for var1 in (serect name,age,sal from emp where job='kaifa')
loop
dbms_output.put('姓名:'||var1.name);
dbms_output.put('年龄:'||var1.age);
dbms_output.put('工资:'||var1.sal);
end loop;
end;
这样就会显示所有工作为开发的信息
2 if ...then
if coundition_expression then -- coundition_expression 为条件表达式 当条件为true时,执行主体 这和java或c中的if差不多
主体
end if;
2.2 if...then...else
if coundition_expression then --条件为true时执行主体1,条件为false时执行主体2
主体1
else
主体2
end if;
2.3 if ...then ...elseif ...else
if coundition_expression then --条件为true时执行主体1,否则判断 coundition_expression2 为true执行主体2 否则执行主体3
主体1
elseif coundition_expression2
主体2
else
主体3
end if
3 case 语句
case var --变量 用来存储要检测的值
when var1 then sql1; --这里的var1是常量,var=var1时执行sql1
when var2 then sql2;
when var3 then sql3;
else --这个else 可用可不用,多用来处理不等于 var1,var2,var3的情况的
end case;
4 loop --loop给我的感觉像java 的do where循环,sql 语句至少执行一次 var1为true时退出循环
loop
sql
exit then var1 --var1为条件表达式
end loop;
5 where
where var1 loop -- 当var1为true时执行sql,否则退出
sql
end loop;