PL/SQL选择结构和循环
选择结构
if 单分支
if 判断条件 then
----执行语句
end if;
if-else 分支
if 判断条件 then
—执行语句
else
—执行语句
end if;
if 多分支
if 判断条件 then
·····
elsif 判断条件 then
·····
elsif 判断条件 then
·····
else
·····
end if;
示例:
declare
--定义四个变量
v_job test_emp.job%type;
v_sal number(10);
v_empno test_emp.empno%type :=&no;
v_oldsal number(10);
begin
--查询职位和工资
select job,sal into v_job,v_oldsal from test_emp where empno=v_empno;
--如果职位为MANAGER,工资加100,下同
if 'MANAGER'=v_job then
v_sal := 100;
elsif 'SALESMAN'=v_job then
v_sal := 50;
elsif 'CLERK'= v_job then
v_sal := 10;
else
v_sal := 0;
end if;
--为不同职位的员工加工资
update test_emp set sal=v_oldsal+v_sal where empno=v_empno;
commit;
end;
case 选择
语法:
case 变量
when 条件 then
…………
when 条件 then
…………
else
…………
end case;
declare
v_job test_emp.job%type;
v_add number(10);
v_empno test_emp.empno%type := &no;
v_oldsal test_emp.sal%type;
begin
select job,sal into v_job,v_oldsal from test_emp where
empno=v_empno;
case v_job
when 'MANAGER' then
v_add := 100;
when 'SALESMAN' then
v_add := 50;
when 'CLERK' then
v_add := 10;
else
v_add :=0;
end case;
update test_emp set sal=v_oldsal+v_add where empno=v_empno;
commit;
end;
循环控制(loop中的三种循环)
exit循环
declare
v_i number(2) :=1;
begin
loop
exit when v_i>10;
dbms_output.put_line(v_i);
v_i :=v_i+1;
end loop;
end;
for 循环
---- 从 100 开始到 110 结束循环输出
declare
v_aaa number(10) ;
begin
--从小到大的循环
for v_aaa in 100 .. 110 loop dbms_output.put_line(v_aaa);
end loop;
end;
--- 反转输出
declare
v_aaa number(10) ;
begin
--从大到小的循环•
for v_aaa in reverse 100..110 loop dbms_output.put_line(v_aaa);
end loop;
end;
while 循环
declare
v_index binary_integer :=100;
begin
while v_index<120 loop
dbms_output.put_line(v_index);
v_index := v_index+1;--没有这个会进入死循环
end loop;
end;
更多相关知识敬请关注哦,猛戳主页,谢谢!