Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Número de registros en una select en pl/sql

Estas en el tema de Número de registros en una select en pl/sql en el foro de Bases de Datos General en Foros del Web. Hola. ¿Cómo puedo saber cuantos registros (específicamente si no me ha devuelto ninguno) ha devuelto una select dentro de un procedimiento almacenado? Muchas gracias....
  #1 (permalink)  
Antiguo 17/05/2005, 03:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Exclamación Número de registros en una select en pl/sql

Hola.

¿Cómo puedo saber cuantos registros (específicamente si no me ha devuelto ninguno) ha devuelto una select dentro de un procedimiento almacenado?

Muchas gracias.
  #2 (permalink)  
Antiguo 18/05/2005, 16:29
 
Fecha de Ingreso: mayo-2005
Mensajes: 16
Antigüedad: 19 años
Puntos: 0
Depende del tipo de cursor que uses para la consulta.
Si es implicito, la exception NO_DATA_FOUND es la forma mas directa. Sino tendrias que modificar tu consulta para que te diga si encontro algo
Por ej:
SELECT 'X'
INTO v_temp
FROM dual where exists (SELECT ...lo que quiero preguntar)

Si es explicito, hay mas de una forma. El atributo ROWCOUNT del cursor que definiste te dice cuantas tuplas proceso hasta el momento. Lo podes ir consultando mientras no lo cierres. Sino definis un contador y lo incrementas si se cumple la condicion FOUND del cursor dentro del loop, etc...

Saludos.
  #3 (permalink)  
Antiguo 19/05/2005, 08:10
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
el valor se almacena en la variable de sql
@@rowcount
  #4 (permalink)  
Antiguo 19/05/2005, 12:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 16
Antigüedad: 19 años
Puntos: 0
Esa variable no existe en PL/SQL, que era a lo que se referia la pregunta.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:16.