1. 程式人生 > >PL/SQL 遊標 (實驗七)

PL/SQL 遊標 (實驗七)

輸出 姓名 blog lec -m %rowtype .com 技術分享 begin

PL/SQL 遊標

emp、dept 目標表結構及數據

技術分享圖片

要求

  • 基於部門表建立遊標dept_cursor1,使用記錄變量接收遊標數據,輸出部門表信息;
    顯示格式:
    部 門 號: XXX
    部門名稱: XXX
    所在位置: XXX

  • 基於部門表建立遊標dept_cursor2,使用標量變量接收遊標數據,輸出部門表信息;
    顯示格式:部門號:XXX 部門名稱:XXX 所在位置:XXX

  • 基於雇員表建立遊標emp_cursor,根據用戶輸入的部門號,輸出該部門薪水在5000元上的雇員姓名、薪水.
    顯示格式:雇員姓名:XXX 薪水:XXX

1.基於部門表建立遊標dept_cursor1,使用記錄變量接收遊標數據,輸出部門表信息;

顯示格式:
部 門 號: XXX
部門名稱: XXX
所在位置: XXX

declare
  cursor dept_cursor1 is
  select dno,dname,loc from dept;
  
  dept_record dept%rowtype;

begin
  open dept_cursor1;
  loop
       fetch dept_cursor1 into dept_record;
       
       exit when dept_cursor1%notfound or dept_cursor1%rowcount > 3;
       dbms_output.put_line('部門號:'||dept_record.dno);
       dbms_output.put_line('部門名稱:'||dept_record.dname);
       dbms_output.put_line('所在位置:'||dept_record.loc);
       
  end loop;
  close dept_cursor1;
end;
       

2.基於部門表建立遊標dept_cursor2,使用標量變量接收遊標數據,輸出部門表信息;
顯示格式:部門號:XXX 部門名稱:XXX 所在位置:XXX

declare
  cursor dept_cursor2 is
  select dno,dname,loc from dept;
  v_deptno dept.dno%type;
  v_deptname dept.dname%type;
  v_deptloc dept.loc%type;

begin
  open dept_cursor2;
  loop
       fetch dept_cursor2 into v_deptno,v_deptname,v_deptloc;
       
       exit when dept_cursor2%notfound or dept_cursor2%rowcount > 3;
       dbms_output.put_line('部門號:'||v_deptno||',部門名稱:'||v_deptname||',所在地:'||v_deptloc);
       
       
  end loop;
  close dept_cursor2;
end;
       

3.基於雇員表建立遊標emp_cursor,根據用戶輸入的部門號,輸出該部門薪水在5000元上的雇員姓名、薪水.
顯示格式:雇員姓名:XXX 薪水:XXX

declare
  cursor emp_cursor is
  select ename,sal from  emp where dno = &dno;
  v_ename emp.ename%type;
  v_sal emp.sal%type;
  
begin  
  
 open emp_cursor;
    loop
       fetch emp_cursor into v_ename,v_sal;
       exit when emp_cursor%notfound;
       if v_sal > 5000 
       then 
         dbms_output.put_line('雇員姓名:'||v_ename||',薪水:'||v_sal);  
       end if;
   end loop;
  close emp_cursor;

end;
  

PL/SQL 遊標 (實驗七)