Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
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..
__________________
No todo es como parece ser...
Responder Con Cita
  #2  
Antiguo 26-12-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
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 -
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 27-12-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
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...

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:13:03.


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
Copyright 1996-2007 Club Delphi