You are on page 1of 2

DECLARE CURSOR cur_dept IS SELECT * FROM dept ORDER BY deptno; CURSOR cur_emp (par_dept VARCHAR2) IS SELECT ename, sal

FROM emp WHERE deptno = par_dept ORDER BY ename; r_dept DEPT%ROWTYPE; var_ename EMP.ENAME%TYPE; var_salary EMP.SAL%TYPE; var_tot_salary NUMBER (10,2); BEGIN OPEN cur_dept; LOOP FETCH cur_dept INTO r_dept; EXIT WHEN cur_dept%NOTFOUND; DBMS_OUTPUT.PUT_LINE ('Department : ' || r_dept.deptno || ' - '|| r_dept.dname); var_tot_salary := 0; OPEN cur_emp (r_dept.deptno); LOOP FETCH cur_emp INTO var_ename, var_salary; EXIT WHEN cur_emp%NOTFOUND; DBMS_OUTPUT.PUT_LINE ('Name: ' ||var_ename || ' Salary:'||var_salary); var_tot_salary := var_tot_salary + var_salary; END LOOP; CLOSE cur_emp; DBMS_OUTPUT.PUT_LINE ('Total Salary for Dept: ' || var_tot_salary); END LOOP; CLOSE cur_dept; END; / Department : 10 - ACCOUNTING Name: CLARK Salary:2450 Name: KING Salary:5000 Name: MILLER Salary:1300 Total Salary for Dept: 8750 Department : 20 - RESEARCH Name: ADAMS Salary:1100 Name: FORD Salary:3000 Name: JONES Salary:2975 Name: SCOTT Salary:3000 Name: SMITH Salary:800 Total Salary for Dept: 10875 Department : 30 - SALES

Name: ALLEN Salary:1600 Name: BLAKE Salary:2850 Name: JAMES Salary:950 Name: MARTIN Salary:1250 Name: TURNER Salary:1500 Name: WARD Salary:1250 Total Salary for Dept: 9400 Department : 40 - OPERATIONS Total Salary for Dept: 0

You might also like