谢敦华

 

游标

3:使用显式游标,根据员工工资(sal)参数,查询员工表emp中工资大于等于该参数的员工信息,显示内容包括员工编码(empno),姓名(ename),工资(sal).用游标FOR循环来做。

declare 
  cursor s(sl number) is select empno,ename,sal from emp where sal>sl;
    empno emp.empno%type;
    ename emp.ename%type;
    sal emp.sal%type;
    begin
      sal:=&sal;
      for rec in s(sal)loop
        dbms_output.put_line('员工编码:'||rec.empno);
        dbms_output.put_line('姓名:'||rec.ename);
        dbms_output.put_line('工资:'||rec.sal);
        end loop;
      end;


4:使用显示游标,查询并打印薪水大于2000并且职位是’manager’ 的员工编号(empno), 员工姓名(ename),员工职位 (job),员工薪水(sal) (分别用无条件循环以及用游标FOR循环来做,并要求定义记录变量)

 
无条件循环
declare 
  cursor emp_cursor is select empno,ename,sal,job from emp where sal>2000 and job='MANAGER';
    empno  emp.empno%type;
    ename  emp.ename%type;
    sal    emp.sal%type;
    job    emp.job%type;
    begin
      open  emp_cursor;
      loop
        fetch emp_cursor into empno,ename,sal,job;
        exit when emp_cursor%notfound;
        dbms_output.put_line(empno||':'||ename||':'||sal||':'||job);
        end loop;
        close emp_cursor;
      end;

FOR循环
declare 
  cursor emp_cursor is select empno,ename,sal,job from emp where sal>2000 and job='MANAGER';
  
    begin
      for   emp_record in emp_cursor
        loop
        dbms_output.put_line('姓名是:'||emp_record.ename||'的,职位是:'||emp_record.job||'的,工资是:'||emp_record.sal);
        end loop;
      end;

 

posted on 2010-11-25 11:36  MichaelXDH  阅读(241)  评论(0)    收藏  举报

导航