Foros del Web » Programando para Internet » PHP »

Llamar Procedimiento Almacenado de Oracle con PHP

Estas en el tema de Llamar Procedimiento Almacenado de Oracle con PHP en el foro de PHP en Foros del Web. Amigos, tengo este problema, busque por todo internet desde hace 3 días y no logro sacarlo, seguramente es una pavada para quien lo conoce, yo ...
  #1 (permalink)  
Antiguo 21/11/2013, 09:45
 
Fecha de Ingreso: noviembre-2013
Mensajes: 9
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Llamar Procedimiento Almacenado de Oracle con PHP

Amigos, tengo este problema, busque por todo internet desde hace 3 días y no logro sacarlo, seguramente es una pavada para quien lo conoce, yo no trabajé con procedimiento almacenados nunca..


Ya tengo la conexión funcionando, y un listado de procedimientos que me han pasado, por ej:

Procedimiento:

Get_Marcas: me devuelve un cursor con las marcas
Entrada: sin parámetros.
Salida: Cursor con las marcas activas (Id, Descripcion)

Como llamo la función desde PHP para traerme las marcas en un array? teniendo en cuenta que no hay parametros de entrara y los de salida son los que puse ahi arriba.

Probé de muchisimas formas y nunca logré hacerlo. Debe ser muy sencillo, pero estoy mareado ya.
Recuerden que la conexión ya está hecha, no hay drama con eso.

Espero alguien pueda darme una mano. Gracias desde ya.
  #2 (permalink)  
Antiguo 21/11/2013, 10:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

<saludos>
oracle, que fiasco ese, revisa este link
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 21/11/2013, 12:35
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 7 meses
Puntos: 4
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

Si tienes otros problemas con Oracle y PHP, este libro te lleva de la mano de una manera muy sencilla:

The Underground PHP and Oracle Manual
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #4 (permalink)  
Antiguo 21/11/2013, 12:44
 
Fecha de Ingreso: noviembre-2013
Mensajes: 9
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

Gracias a los dos por su respuesta. Habia visto esos dos links, como les cuento, vengo buscando una solución desde hace 3 días.
Les pego el código que armé, recuerden que no tengo parametros de entrada, es para listar todas las marcas.

Cita:
$sql = 'BEGIN Get_Marcas(:Id, :Descripcion); END;';
oci_bind_by_name($sql, ":Id", $Id);
oci_bind_by_name($sql, ":Descripcion", $Descripcion, 40);
oci_execute($sql);
Los Errores que me da son:

Warning: oci_bind_by_name() expects parameter 1 to be resource, string given in...

Warning: oci_bind_by_name() expects parameter 1 to be resource, string given in...

Warning: oci_execute() expects parameter 1 to be resource, string given in...


Algo estoy poniendo mal? como sería la forma correcta?
Gracias
  #5 (permalink)  
Antiguo 21/11/2013, 14:09
 
Fecha de Ingreso: noviembre-2013
Mensajes: 9
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

También probe de esta forma:

Cita:
$sql = 'CALL Get_Marcas();';
oci_execute($sql);
pero me da el mismo error... como verán, ni si quiera sé si se llama con el CALL o el BEGIN..END.. cual es la diferencia?

Gracias.
  #6 (permalink)  
Antiguo 22/11/2013, 07:16
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 7 meses
Puntos: 4
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

Cita:
Iniciado por chelelo Ver Mensaje
... Los Errores que me da son:

Warning: oci_bind_by_name() expects parameter 1 to be resource, string given in...

Warning: oci_bind_by_name() expects parameter 1 to be resource, string given in...

Warning: oci_execute() expects parameter 1 to be resource, string given in...
...
El mensaje de error indica que estas poniendo mal los parámetros (el primer parámetro no es cadena)

Revisita los links, ahi esta la respuesta.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #7 (permalink)  
Antiguo 22/11/2013, 08:09
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años
Puntos: 96
Respuesta: Llamar Procedimiento Almacenado de Oracle con PHP

Tienes que preparar la.consulta antes de ejecutarla
Código PHP:
Ver original
  1. $stmt = oci_parse ($conn, $sql);
  2. oci_bind_by_name($stmt, tus datos );
  3. oci_bind_by_name($stmt, tus datos );
  4. oci_execute ($stmt);
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.

Etiquetas: almacenado, oracle, 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 02:19.