Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Devolver varios registro desde SP (https://www.clubdelphi.com/foros/showthread.php?t=28556)

lucasarts_18 23-12-2005 04:39:55

Devolver varios registro desde SP
 
Hola a todos:

Tengo una duda, como puedo devolver una consulta de varios registros desde un procedimiento almacenado.

Mas especificamente así:

Código SQL [-]
begin
  select * from
  tabla;
end;

Saludos..

lucasarts_18 26-12-2005 19:19:16

Hola a todos:

He encontrado la solución:

Código SQL [-]
 CREATE OR REPLACE PROCEDURE SP_AGE_S_GRUPO_USUARIO
 
   (IN_USUARIO IN CHAR,
    --OUT_GRUPO OUT VARCHAR)
    pLista OUT CURSOR_GRUPOS
   )
      
 IS
 
   V_COD_GRUPO VARCHAR(15);
   
   TYPE GRUPOS IS RECORD (
     CODIGO      VARCHAR(5),
     DESCRIPCION VARCHAR(40)
   );
   
   TYPE CURSOR_GRUPOS IS 
   REF CURSOR RETURN GRUPOS;
   
   
   
 BEGIN
   --SELECT COD_GRUPO INTO V_COD_GRUPO
   --FROM USUARIO
   --WHERE COD_USUARIO = IN_USUARIO;
   
   --OUT_GRUPO := V_COD_GRUPO;
   
   OPEN pLISTA FOR 
   SELECT * FROM USUARIO;
 END;

Solo que esto funciona desde un package y no de un Procedimiento Almacenado, ya que no permite declarar el cursor como parametro, desde un package claro que sí.

Hasta Luego -

lucasarts_18 27-12-2005 15:16:57

Hola:

Ahora dejo el ejemplo desde un package lo cual se logra resolver mi inquitud que tenía al momento de abrir el hilo..

Código SQL [-]
 Create Or Replace Package Mantenedor_Usuarios is
 
   -- Public type declarations
   --type  is ;
    TYPE c_LISTA IS REF CURSOR;
    
 END Mantenedor_Usuarios;
 
 Create Or Replace Package Body Mantenedor_Usuarios is
 
 PROCEDURE SP_S_LEER_GRUPOS (
   LISTAR_GRUPOS OUT c_LISTA);
 
 --implementation
 
 PROCEDURE SP_S_LEER_GRUPOS (
   LISTAR_GRUPOS OUT c_LISTA)
 IS
 BEGIN
   OPEN LISTAR_GRUPOS 
   FOR SELECT * FROM GRUPO;
 END;
 
 END Mantenedor_Usuarios;

Esto no se puede hacer desde un Procedimiento Almacenado...:mad:

Hasta Luego -


La franja horaria es GMT +2. Ahora son las 13:18:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi