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.