Você pode executar
show errors; para ver quais são os erros de compilação. O tipo de dados do parâmetro deve ser especificado sem comprimento. Além disso, use
varchar2 em vez de varchar . Do site da Oracle :
Tente isto:
CREATE OR REPLACE FUNCTION count_emp(e_name varchar2) -- here
RETURN integer IS
total integer;
BEGIN
SELECT count(*) into total
FROM DEPARTMENTS
where ENAME = e_name;
RETURN total;
END;
/