Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Procedimiento

Estas en el tema de Procedimiento en el foro de Oracle en Foros del Web. Amigos, aun soy nuevo en Oracle y pasar de SQL -> Oracle es trabajoso; bueno mi duda es COMO RESCATAR UNA LISTA DE REGISTROS EJECUTANDO ...
  #1 (permalink)  
Antiguo 17/05/2010, 09:24
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 1
Procedimiento

Amigos, aun soy nuevo en Oracle y pasar de SQL -> Oracle es trabajoso; bueno mi duda es COMO RESCATAR UNA LISTA DE REGISTROS EJECUTANDO UN PROCEDIMIENTO ALMACENADO
1. La sintaxis en Oracle es muy diferente
2. Los procedimientos son iguales a SQL solo para Agregar, Actualiza o Eliminar registros.
3. Pero para rescatar una Lista de registros (Select * from Tabla) se tiene que utilizar un "REF CURSOR"... muy bien, eso ya lo se y ya entendi como se utiliza... pero el PROBLEMA QUE TENGO ES PODER EJECUTAR EL PROCEDIMIENTO Y VISUALIZAR EL RESULTADO DE TAL EJECUCION, Espero puedan ayudarme: yo tengo lo siquiente

Código:
CREATE O REPLACE PROCEDURE EMPRESA.LeerTabla
(   Param1 number,
    MiCursor OUT sys_refcursor
)
is
Begin
   Open MiCursor for
   Select * From MiTabla
   where Campo1 = Param1;
End LeerTabla;
Muy bien, esta creado mi Procedimiento, la pregunta es:
Código HTML:
¿COMO HAGO PARA EJECUTARLO Y PARA VISUALIZAR EL RESULTADO?
  #2 (permalink)  
Antiguo 19/05/2010, 18:47
Avatar de xf_corp  
Fecha de Ingreso: mayo-2008
Mensajes: 57
Antigüedad: 12 años, 5 meses
Puntos: 3
Sonrisa Respuesta: Procedimiento

Hola,

Prueba algo asi:

CREATE OR REPLACE PROCEDURE LeerTabla (Param1 number, MiCursor OUT sys_refcursor) is
rec Mitabla%ROWTYPE;
Begin
Open MiCursor for
Select * From MiTabla
where Campo1 = Param1;


loop
fetch MiCursor into rec;
exit when MiCursor%notfound;
dbms_output.put_line(rec.Campo1);
end loop;

End LeerTabla;
/

set serveroutput on
DECLARE
cX SYS_REFCURSOR;
BEGIN

OPEN cX FOR SELECT * from MiTabla;

LeerTabla(3, cX);

close cX;

END;
/


http://www.java2s.com/Tutorial/Oracle/0500__Cursor/AnexampleofusingSYSREFCURSORforcursorvariableproce ssing.htm
http://www.adp-gmbh.ch/ora/sql/sys_refcursor.html

espero te sea útil .
  #3 (permalink)  
Antiguo 20/05/2010, 00:08
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 13 años, 4 meses
Puntos: 43
Respuesta: Procedimiento

No es necesario usar los REF CURSOR, tienes muchas variantes ,los tipo record, tablas pl, varrays.............

Etiquetas: procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:29.