Seu problema é que seu parâmetro de entrada tem o mesmo nome da sua coluna, então quando a consulta vir
WHERE SCOTT.EMP.DEPTNO = deptno
ele interpreta
deptno como SCOTT.EMP.DEPTNO , o que significa que é verdadeiro para todos os valores de deptno . Altere o nome do seu parâmetro de entrada e a consulta funcionará conforme o esperado. Você também deve usar
NVL para garantir que o SUM individual os valores não são NULL , como se qualquer um deles fosse NULL que fará a soma deles NULL também ou seja select NVL(SUM(SAL), 0) INTO SALSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
select NVL(SUM(COMM), 0) INTO COMMSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;