Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/02/2010, 08:44
Avatar de 8vio
8vio
 
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 12 años, 8 meses
Puntos: 6
Respuesta: Retornar Datos de procedimiento select

Primero declara los valores tipo tabla ejm:

Código:
TYPE tstring IS TABLE OF VARCHAR2(30)
             INDEX BY BINARY_INTEGER;
      
TYPE tnumbers IS TABLE OF NUMBER
              INDEX BY BINARY_INTEGER;
Luego tu procedimiento podria ser algo asi:


Código:
PROCEDURE Retornar_varias_filas (Campo1 OUT tstring,               
                                                       Campo2 OUT tstring,
                                                       Campo3 OUT tstring, 
                                                       Status OUT tnumbers
                                                       )

IS 

      -- Cursor
      CURSOR crs IS
      SELECT campo1, campo2, campo3
      FROM tabla;
      
      c NUMBER DEFAULT 1; -- Contador

BEGIN

      FOR single IN crs  LOOP
       
          Campo1(c):= single.campo1;    
          Campo2(c):= single.campo2;   
          Campo3(c):= single.campo3;     
          
         
          c := c + 1;
       
      END LOOP;
            
      IF (c = 1) THEN  -- Si al finalizar el loop la variable c es 1, no existen datos
      
          Status (1) := 1;
      
      ELSE -- Existe al menos un Retorno
      
          Status (1) := 0;
      
      END IF;



END;

Asi puedes retornar varias filas, una sola o lo que quieras. Recuerda declarar los tipo tabla

Saludos.