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;