Uw probleem is dat uw invoerparameter dezelfde naam heeft als uw kolom, dus wanneer de query ziet
WHERE SCOTT.EMP.DEPTNO = deptno
het interpreteert deptno als SCOTT.EMP.DEPTNO , wat betekent dat het waar is voor alle waarden van deptno . Wijzig de naam van uw invoerparameter en de query werkt zoals verwacht.
Gebruik ook NVL om ervoor te zorgen dat de individuele SUM waarden zijn niet NULL , alsof een van beide NULL is dat maakt de som van hen NULL ook d.w.z.
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;