Usar a built-in COUNT com variáveis locais é confuso e na maioria das vezes é um erro de programação.
DECLARE v_empno emp.empno%TYPE; ... BEGIN -- Como a variável v_empno é NULL nesse ponto, esse COUNT sempre retornará 0. SELECT COUNT(v_empno) INTO i FROM employee WHERE employee.deptno = v_deptno; END;
BEGIN SELECT COUNT(*) INTO i FROM employee WHERE employee.deptno = v_deptno; END;