Ver la Versión Completa : Devolver varios registro desde SP
lucasarts_18
23-12-2005, 04:39:55
Hola a todos:
Tengo una duda, como puedo devolver una consulta de varios registros desde un procedimiento almacenado.
Mas especificamente así:
begin
select * from
tabla;
end;
Saludos..
lucasarts_18
26-12-2005, 19:19:16
Hola a todos:
He encontrado la solución:
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..
Create Or Replace Package Mantenedor_Usuarios is
-- Public type declarations
--type <TypeName> is <Datatype>;
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 -
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.