1. 程式人生 > >ORACLE PL/SQL程式設計之四:把遊標說透

ORACLE PL/SQL程式設計之四:把遊標說透

DECLARE
  DeptRec    DEPARTMENTS
%ROWTYPE;
  Dept_name  DEPARTMENTS.DEPARTMENT_NAME
%TYPE;
  Dept_loc   DEPARTMENTS.LOCATION_ID
%TYPE;
  
CURSOR c1 ISSELECT DEPARTMENT_NAME, LOCATION_ID FROM DEPARTMENTS 
  
WHERE DEPARTMENT_ID <=30;
  
  
CURSOR c2(dept_no NUMBERDEFAULT10ISSELECT DEPARTMENT_NAME, LOCATION_ID 
FROM DEPARTMENTS 
    
WHERE DEPARTMENT_ID <= dept_no;
  
CURSOR c3(dept_no NUMBERDEFAULT10ISSELECT*FROM DEPARTMENTS 
    
WHERE DEPARTMENTS.DEPARTMENT_ID <=dept_no;
BEGINOPEN c1;
  LOOP
    
FETCH c1 INTO dept_name, dept_loc;
    
EXITWHEN c1%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(dept_name
||'---'||dept_loc);
    
END LOOP;
    
CLOSE c1;

    
OPEN c2;
    LOOP
        
FETCH c2 INTO dept_name, dept_loc;
        
EXITWHEN c2%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(dept_name
||'---'||dept_loc);
    
END LOOP;
    
CLOSE c2;

    
OPEN c3(dept_no =>20);
    LOOP
        
FETCH c3 
INTO deptrec;
        
EXITWHEN c3%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(deptrec.DEPARTMENT_ID
||'---'||deptrec.DEPARTMENT_NAME||'---'||deptrec.LOCATION_ID);
    
END LOOP;
    
CLOSE c3;
END;