Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2011, 05:41
Avatar de h2swider
h2swider
 
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: como hacer un procedimiento con select

tendrías que hacer un procedimiento con un parámetro de salida de tipo puntero para luego poder recorrerlo. Yo trabajo con procedimientos que llamo desde php, y hago algo así:

Código PHP:
$sql "BEGIN test( :entrada1, :p_entrada2 , :salida); END;";
        
$conex Conexion::getInstancia(USUARIO2PASSWORD2BASE2SERVIDOR2);
        
$stid oci_parse($conex$sql);

        
oci_bind_by_name($stid':p_entrada1'$usuario, -1SQLT_CHR);
        
oci_bind_by_name($stid':p_entrada2'$edad, -1SQLT_INT);

        
$salida oci_new_cursor($conex);
        
oci_bind_by_name($stid":salida"$salida, -1OCI_B_CURSOR);
        
oci_execute($stid);
        
oci_execute($salida); 
Y en oracle..

Código:
CREATE OR REPLACE PACKAGE tipos as
type cursor_type is ref cursor;
end;
/

PROCEDURE test(p_usuario in  varchar, p_edad in  number, p_recordset out tipos.cursor_type) as 
    begin 
        open p_recordset for
        select * from tabla_test where usuario=p_usuario and edad=p_edad;
    end test;
/
Para finalmente recorrerlo fila a fila de esta manera
Código PHP:
while ($row oci_fetch_array($stidOCI_ASSOC OCI_RETURN_NULLS)) {
 echo 
"$row</br>";

Espero que te sirva de alguna manera
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives