oracle 游标的使用

oracle 游标的使用
-- 通过使用隐式游标和记录为mydept表添加内容
Declare   
Type  dept_rec 
Is  Record
(
     r_deptno  dept.deptno
% Type,
     r_dname   dept.dname
% Type,
     r_loc     dept.loc
% Type
);
v_deptrec   dept_rec;
Begin
     
Select  deptno,dname,loc  Into  v_deptrec  From  dept
     
Where  deptno =& dno;
     
Insert   Into  mydept  Values  v_deptrec;
      dbms_output.put_line(
' 插值成功 ' );
     Exception 
     
When  NO_DATA_FOUND  Then
     dbms_output.put_line(
' 该部门不存在 ' );
     
When  Others  Then
     dbms_output.put_line(
' 发生异常,插值失败 ' );
End  ;


-- 结合游标从DEPT表中查询数据,将相应的数据插入到MYDEPT表中
Declare   
Type  dept_rec 
Is  Record
(
     r_deptno  dept.deptno
% Type,
     r_dname   dept.dname
% Type,
     r_loc     dept.loc
% Type
);
Cursor  dept_cursor  Is
Select   *   From  dept  Order   By  deptno  Asc ;
v_deptrec   dept_rec;
Begin

      
-- 打开游标
       Open  dept_cursor;
      
-- 从游标中取值
       Fetch  dept_cursor  Into  v_deptrec;
      
While (dept_cursor % Found) Loop
           
Insert   Into  mydept  Values  v_deptrec;
      dbms_output.put_line(
' 插值成功 ' );
      
Fetch  dept_cursor  Into  v_deptrec;          
      
End  Loop;
      
Close  dept_cursor;
     Exception 
When  Others  Then
     dbms_output.put_line(
' 发生异常,插值失败 ' );
End  ;


-- 使用面向游标的记录
--
通过面向游标的记录显示部门信息
Declare   Cursor  dept_cursor
Is
Select   *   From  mydept  Order   By  deptno  Asc ;
-- 定义一个面向游标的记录
v_deptrec dept_cursor % Rowtype;
Begin
     
Open  dept_cursor;
     Loop 
     
Fetch   dept_cursor  Into  v_deptrec;      
          
Delete   From  mydept  Where  deptno = v_deptrec.deptno;
          dbms_output.put_line(v_deptrec.deptno
|| '  信息删除成功 ' );
     
Exit   When  dept_cursor % Notfound ;
     
End  Loop;
     
Close  dept_cursor;
     Exception 
When  Others  Then
     dbms_output.put_line(
' 发生异常,删除失败 ' );
End ;

你可能感兴趣的:(oracle 游标的使用)