Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/06/2013, 19:29
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con cursor en pl/sql

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 original
  1. totalempleados NUMBER;
  2. totalempleados := 0;
  3.  
  4. SELECT COUNT (DISTINCT employee_id) total
  5. INTO totalempleados
  6. FROM employees E, departments D, locations L, countries C
  7. WHERE E.department_id = Ddepartment_id
  8.     AND  D.location_id = L.location_id
  9.     AND L.country_id = C.country_id
  10.     AND C.country_name = '&nombre_pais'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)