Es que estás complicando innecesariamente la consulta, pero además no estás considerando que la condición puesta no ´devolverá un único registro.
Piensa: ¿Cuántos empleados puede haber, de cuántos departamentos, que estén en qué lugares de un mismo país?
Con eso sólo, ya tienes una cantidad enorme de posibilidades.
Ahora bien, si lo único que necesitas es la
cantidad de empleados, ni siquiera es un CURSOR, porque devuelve un único valor. Se usan cursores si vas a realizar una iteración de valores, y no es el caso.
La solución sería definir una variable y obtener el resultado.
Código SQL:
Ver originaltotalempleados NUMBER;
totalempleados := 0;
SELECT COUNT (DISTINCT employee_id) total
INTO totalempleados
FROM employees E, departments D, locations L, countries C
WHERE E.department_id = Ddepartment_id
AND D.location_id = L.location_id
AND L.country_id = C.country_id
AND C.country_name = '&nombre_pais'