实验七:PL/SQL编程基础(2)

1、练习使用游标,包括隐士游标、显式游标和游标FOR循环。

(1)在SCOTT模式下显示工资排名前5的员工的编号、姓名和工资,并将所有执行正确的PL/SQL语句记录下来。

①使用隐士游标。

②使用显式游标。

 

 

SQL> set serveroutput on
SQL> declare
  2  cursor emp_cursor is select empno,ename,sal from emp order by sal desc;
  3  type employee is record(
  4  id emp.empno%type,
  5  name emp.ename%type,
  6  v_sal emp.sal%type);
  7  emp_row employee;
  8  i number:=0;
  9  begin
 10  open emp_cursor;
 11  fetch emp_cursor into emp_row;
 12  while i<5
 13  loop
 14  dbms_output.put_line('编号:'||emp_row.id||' 姓名:'||emp_row.name||'工资:'||emp_row.v_sal);
 15  i:=i+1;
 16  fetch emp_cursor into emp_row;
 17  end loop;
 18  close emp_cursor;
 19  end;
 20  /

 ③使用游标for循环

SQL> set serveroutput on
SQL> declare
  2  cursor emp_cursor is select empno,ename,sal from emp order by sal desc;
  3  i number:=0;
  4  begin
  5  for r in emp_cursor loop
  6  if i<5 then
  7   dbms_output.put_line('编号:'||r.empno||' 姓名:'||r.ename||'工资:'||r.sal);
  8  i:=i+1;
  9  end if;
 10  end loop;
 11  end;
 12  /

2.预定义异常的应用:在SCOTT模式下,由员工编号(员工编号由用户任意输入)查找EMP表中的某一员工的姓名。若查找成功则显示该员工的姓名若该员工编号不存在、则由教材P136表6-2中系统定义的异常NO_DATA_FOUND,输出用户自定义的错误信息“编号错误,没有找到相应的雇员!”若发生其他类型的错误,则利用OTHERS子句捕获异常,显示自定义错误消息“发生其他错误”、出错码(SQLCODE)以及出错信息(SQLERRM)。

 

SQL> set serveroutput on
SQL> declare
  2  sal_err exception;
  3  v_sal emp.sal%type;
  4  i number:=&i;
  5  begin
  6  select sal into v_sal from emp where empno=i;
  7  if v_sal=0 then
  8  raise sal_err;
  9  end if;
 10  exception
 11  when sal_err then
 12  dbms_output.put_line(
 13  '佣金为0,数据错误');
 14  end;
 15  /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H-rosy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值