pl查询

DECLARE
v_q EMP.sal %type; --定义属性类型 type 若sal类型改变 v_q 也会相应改变 --定义变量v_q
BEGIN
 SELECT e.SAL INTO v_q  --取值放入v_q
 from emp e
 WHERE e.HIREDATE=TO_DATE('1981-02-20', 'yyyy-mm-dd');


 if (v_q >2500)
THEN
--专门输出语句 
dbms_output.put_line('A');--把输出值放在括号里
ELSE
dbms_output.put_line('B');--否则输出B
END IF;
END;




DECLARE v_w EMP%rowtype;--取满足编号为7566的所有字段,%rowtyp横条记录类型
BEGIN
   SELECT *INTO v_w--取所有字段
   FROM  EMP e
   WHERE e.EMPNO=7566;
   CASE v_w.sal       --case语句
   WHEN 1600 THEN dbms_output.put_line('C');
   WHEN 2000 THEN dbms_output.put_line('A');
   WHEN 3000 THEN dbms_output.put_line('B');
   ELSE  dbms_output.put_line('D');
   END CASE;
END;




--loop循环 控制
DECLARE 
v_e NUMBER:=1;
BEGIN
loop
dbms_output.put_line(v_e);
exit WHEN v_e>100;
v_e:=v_e+1;
end loop;
END;


DECLARE --另一种写法 结果一样
v_r NUMBER:=1;
BEGIN
while v_r<100 loop
dbms_output.put_line(v_r);
exit WHEN v_r>100;
v_r:=v_r+1;
end loop;
END;




begin 
for v_t in  (reverse) 1..100--从1-100 reverse 倒过来100-1
loop
dbms_output.put_line(v_t);
end loop;
end;


 v_exception
--异常处理
--系统异常
DECLARE  --错误处理
v_y emp%rowtype;
begin 
select * into v_y
from emp e
where e.empno>8000;
dbms_output.put_line(v_y.sal);
EXCEPTION
when others THEN
dbms_output.put_line(sqlerrm);--当前错误信息,系统异常
end;
--自定义异常
DECLARE
v_u EMP%rowtype;
v_exception EXCEPTION;--自定义异常
BEGIN
  SELECT  *INTO v_u 
  FROM EMP e 
  WHERE e.EMPNO=7839;


IF v_u.sal <8000
THEN 
raise v_exception;--引发异常
END IF;
EXCEPTION
  WHEN v_exception THEN 
  dbms_output.put_line('加工资');
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值