• Martes 16 de Abril de 2024, 00:59

Autor Tema:  Select Dentro De Un Procedimiento Almacenado  (Leído 7255 veces)

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Select Dentro De Un Procedimiento Almacenado
« en: Jueves 4 de Octubre de 2007, 18:41 »
0
Saludos compañeros de SC.

Voy directo al grano: tengo un select * dentro de un procedimiento

Código: Text
  1. CREATE OR REPLACE PROCEDURE selectAll ( )
  2. IS
  3. BEGIN
  4.              SELECT * FROM estudiantes
  5. END;
  6.  

el procedimiento asi como esta tiene errores, pero solo quiero que comprendan que es lo que quiero hacer. Bueno ahora lo que quiero es que a la hora que utilice este procedimiento dentro de c# en una pagina aspx, yo pueda sacar los resultados que me tira esta consulta a un listBox por ejemplo.

No se si esto sea posible hacerlo a travez de una variable de salida OUT. o es necesario el uso de cursores para esto, ya que son muchos datos los que arrojaría el select.

gracias y saludos!!!!
Un dia sin sol es como, ya sabes, ... noche

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Select Dentro De Un Procedimiento Almacenado
« Respuesta #1 en: Domingo 14 de Octubre de 2007, 20:20 »
0
La forma mas comun, si bien no la mas optima para todos los casos:

Código: Text
  1.  
  2. CREATE PACKAGE PACKPRUEBA
  3. IS
  4.  
  5.   TYPE MyRefCur_t IS REF CURSOR RETURN my_table%ROWTYPE;
  6.  
  7.   PROCEDURE selectAll ( myREFCursor out MyRefCur_t R);
  8. END PACKPRUEBA;
  9. /
  10.  
  11. CREATE PACKAGE BODY PACKPRUEBA
  12. IS
  13.  
  14.   PROCEDURE selectAll ( myREFCursor out MyRefCur_t R);
  15.   IS
  16.   BEGIN
  17.     OPEN myREFCursor FOR
  18.              SELECT *
  19.              FROM estudiantes;
  20.  
  21.     RETURN myREFCursor;
  22.   END selectAll;
  23.  
  24. END PACKPRUEBA;
  25. /
  26.  
  27.  


Yo usaria funciones, y si no es un dato abrumadoramente grande de datos usara un pl/sql table retornando para c# un array o algo muy parecido.


Una forma mas facil y menos recomendada es usar ref cursor debilmente tipeados (weakly typed), es mas facil pero apenas un poco mas facil.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io