Usar a built-in COUNT com variáveis locais é confuso e na maioria das vezes é um erro de programação.

Código em desconformidade

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;

Código correto

BEGIN
  SELECT COUNT(*)
    INTO i
    FROM employee
   WHERE employee.deptno = v_deptno;
END;