PL/SQL选择结构和循环

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;

更多相关知识敬请关注哦,猛戳主页,谢谢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值