Foros del Web » Programando para Internet » PHP »

cursor de oracle - php

Estas en el tema de cursor de oracle - php en el foro de PHP en Foros del Web. Buenas tardes Tengo un procedimiento en oracle qu esta dentro del paquete pck_filtros, el cual retorna un cursor de salida llamado cur_salida: Procedure pr_pruebacur(codtab tatriper.cdatribu%TYPE ...
  #1 (permalink)  
Antiguo 05/04/2010, 18:13
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
cursor de oracle - php

Buenas tardes Tengo un procedimiento en oracle qu esta dentro del paquete pck_filtros, el cual retorna un cursor de salida llamado cur_salida:

Procedure pr_pruebacur(codtab tatriper.cdatribu%TYPE
,cur_salida OUT pck_filtros.defcursor) IS
BEGIN
OPEN cur_salida FOR

select v.otvalor
from tatriper a
,ttaptabl t
,ttapvat1 v
where a.ottabval= t.cdtabla
and t.nmtabla =v.nmtabla
and a.cdatribu = 2
and rownum <2;

END;

Bueno lo que yo quiero es por medio del php consumir este paquete y tomar los datos que me retorna el cursor.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 05/04/2010, 20:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: cursor de oracle - php

ya has leído el manual respectivo antes??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/04/2010, 07:51
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
cual manual

Necesito ayuda con este tema. es urgente.

Bueno he dado vueltas por toda la web y nadie sabe sobre esta pregunta.

Solo quiero saber si es posible hacer esto o en PHP no se pueden consumir cursores.

Gracias

Última edición por GatorV; 06/04/2010 a las 09:31
  #4 (permalink)  
Antiguo 06/04/2010, 09:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: cursor de oracle - php

El Manual de PHP en la sección OCI, puedes ver la función oci_parse.

Saludos.
  #5 (permalink)  
Antiguo 06/04/2010, 09:53
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: cursor de oracle - php

Gracias por la respuesta estuve investigando y no me sirve el OCI no se si sea por la version de Oracle 7.

Lo intente con ora_parse:

este es mi procedimiento:

Procedure pr_pruebacur(codtab tatriper.cdatribu%TYPE
,cur_salida OUT pck_filtros.defcursor) IS
BEGIN
OPEN cur_salida FOR

select v.otvalor
from tatriper a
,ttaptabl t
,ttapvat1 v
where a.ottabval= t.cdtabla
and t.nmtabla =v.nmtabla
and a.cdatribu = 2
and rownum <2;

END;

y este es mi codigo php que he podido armar despues de muchas averiguaciones:

$sql = "begin pck_filtros_cuadromedico.pr_pruebacur(:codtab); end;";
$cursor = ora_open($conn);
$statement =ora_parse($cursor,$sql);


ora_bind($cursor, "codtab", ":codtab", 32);

$cur_salida = 0;

ora_exec($cursor);

print "salida is $cur_salida";

pero me arroja un error

Warning: ora_exec() [function.ora-exec]: Can't find variable for parameter in C:\wamp\www\Ejercicios_prueba\oracle_php\index.php on line 40

no se donde estar el error soy nuevo en esto.. Cualquier ayuda se agradece.
  #6 (permalink)  
Antiguo 06/04/2010, 10:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: cursor de oracle - php

Desconozco si con ora se puede realizar, pero en dado caso te recomendaría que actualizaras a la librería OCI ya que tiene más funciones y puede trabajar con versiones de Oracle de la 7 a la 10g.

Saludos.
  #7 (permalink)  
Antiguo 06/04/2010, 11:06
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Gracias por la respuesta pero intente con oci y me vota muchos errores que no reconoce las funciones no se si tenga que ver el php 4 que uso.

Por eso lo hice con ora y si me sirvio al traer una consulta a una tabla pero con el procedimiento almacenado me arroja el error


Warning: ora_exec() [function.ora-exec]: Can't find variable for parameter in C:\wamp\www\Ejercicios_prueba\oracle_php\index.php on line 40

y no se que sea...

Alguin a manejado procedimientos almacenados de oracle con php usadon la funcion ora_parse....

O no es posible hacer esto.

Gracias

Nadie sabe del tema en cuestion.....

No me pueden dar una ayudita

Nadie conoce de oracle que hago con este tema . es incierto

----------------------------

Última edición por GatorV; 06/04/2010 a las 17:00
  #8 (permalink)  
Antiguo 06/04/2010, 15:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: cursor de oracle - php

Cita:
Iniciado por gigoz1 Ver Mensaje
Creo que este foro no sirve para nada nadie me da respuesta alguna..... Como que nadie sabe nada...
hey ya bajale a tu avión...

en primer lugar te sugiero leas las reglas del foro, nadie está obligado a participar en un tema... que curiosamente solo por tu terquedad creas y creas respuestas de auxilio!!

eso hace que parezca que tiene actividad el tema y nadie le presta atención, por que alguien ya lo esta atendiendo...

otra es que no necesariamente se sabe todo en el foro, o bien, alguien que si sabe no está conectado, etc... creo que debes ser prudente al respecto de tus acciones...

y sobre todo, ten paciencia... ya que se hace lo que está a nuestro alcance, y con personas como tu, parece que hasta nos deberían pagar por atender a quienes no saben ser prudentes, y tampoco saben investigar... caray!!

PDTA: y si te urge tanto, por favor... si puedes pagar por alguien que te enseñe o haga tu trabajo bien por ti ve al foro de ofertas de empleo, la ayuda que se ofrece aquí es desinteresada y no es bien recibida la presión que ejerces, deberías saber... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 06/04/2010, 15:40
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: cursor de oracle - php

mmmmm bien no era para tanto perdon si oferdon si ofendi a alguin no era mi intension............

Solo quiero resolver este dilema que llevo mucho tiempo intentandolo resolver pero no encuentro ninguna salida.....
  #10 (permalink)  
Antiguo 06/04/2010, 15:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: cursor de oracle - php

Cita:
Iniciado por gigoz1 Ver Mensaje
Creo que este foro no sirve para nada nadie me da respuesta alguna..... Como que nadie sabe nada...
Amigo en este foro vas a encontrar varias respuesta con respecto a como conectarse a Oracle. Te recomiendo que hagas una búsqueda de nuevo especificamente en este foro. También en el manual de OCI que tiene PHP, hay un comentario que habla de un libro que han creado ciertas personas que ayuda a entender como conectarse a Oracle, te recomiendo que lo verifiques http://otn.oracle.com/tech/php/pdf/u...cle-manual.pdf

PD: Esto es un foro no un chat. Debes dar un aproximado de 24 horas para recibir una respuesta. Con esa actitud no conseguirás que alguien te ayude. Y como te recomendaron si es urgente el proyecto, entonces paga a alguien que te haga la instalación.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 06/04/2010, 15:52
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: cursor de oracle - php

mmmmmmmmmmmmmm.... Mi problema no es de conexion ni nada de eso.

Mi pregunta desde el comienzo fue como leia un procedimiento almacenado oracle desde php usando ora_parse porque el oci_parse no me funciona......
  #12 (permalink)  
Antiguo 06/04/2010, 15:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: cursor de oracle - php

Cita:
Iniciado por gigoz1 Ver Mensaje
mmmmmmmmmmmmmm.... Mi problema no es de conexion ni nada de eso.

Mi pregunta desde el comienzo fue como leia un procedimiento almacenado oracle desde php usando ora_parse porque el oci_parse no me funciona......
así como también ya se te ha dicho que lo mejor es que consultes el manual... y que actualices tu versión de oracle... cierto??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 06/04/2010, 16:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: cursor de oracle - php

Bueno, como quiera te recomiendo que leas ese libro. Otra cosa bien importante y es que debes actualizar tu php, ya php4 es obsoleto. También tu oracle. Lo mejor es que actualices a la versión más nueva y estable. Modifica tu código para que reconozca con el OCI8 y lee ese manual para que puedas lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 06/04/2010, 16:09
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: cursor de oracle - php

Muchas gracias por las respuestas...... Voy a mirar el manual.....

Lo unico es que no puedo cambiar el php ni mucho menos el oracle ya que son protocolos de la empresa donde trabajooo.....

Por eso use el ora_parse que fue lo unico que encontre para adactarlo. pero tampoco me funciono
  #15 (permalink)  
Antiguo 06/04/2010, 17:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: cursor de oracle - php

Como te había comentado no es posible hacerlo con Ora, esto es porque la nueva librería oci tiene la función oci_bind_by_name la cual te permite ejecutar y buscar los parámetros que necesitas.

Si no puedes cambiar el php.ini ni la versión de Oracle creo no hay mucho que puedas hacer para resolver el problema, recuerda que PHP4 ya es una versión obsoleta de PHP y la librería ORA ya fue deprecated.

Saludos.
  #16 (permalink)  
Antiguo 11/07/2012, 11:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: cursor de oracle - php

Para aquellos que estan buscando como leer curso de oracle desde PHP:
Algunos ejemplos de mi proyecto:
Aqui pongo un extracto de codigo:

function Nombre_funcion($pCedula,$pCurso,$pPeriodo,$pTipoUs er)
{
//EJECUTAR UNA FUNCION CON OCI8
$cn=$this->connect('ora','str'); //obtiene los datos de conexion forma string
$cnn=explode("*",$cn);
$conn = oci_connect($cnn[1],$cnn[2],$cnn[0]);
if (!$conn)
{
$e = oci_error();
$pSalida = $e;
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
else
{ $pSalida = "conexion exitoza";
//----------------------------------------- leyendo procedimiento ------------------------------------------
// $stid = oci_parse($conn, 'begin :pSalida := NOMBRE_PAQUETE.NOMBRE_PROCEDURE(:pCed,:pCur,:pPer, :pUser); end;');

// oci_bind_by_name($stid, ':pCed', $pCedula);
// oci_bind_by_name($stid, ':pCur', $pCurso);
// oci_bind_by_name($stid, ':pPer', $pPeriodo);
// oci_bind_by_name($stid, ':pUser', $pTipoUser);

// oci_bind_by_name($stid, ':pSalida', $pSalida,8000);

// oci_execute($stid);

// oci_free_statement($stid);


//----------------------------------------- leyendo un cursor ------------------------------------------
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin NOMBRE_PAQUETE.NOMBRE_PROCEDURE(:pCed,:pCur,:pPer, :pUser,:data); end;");
oci_bind_by_name($stmt, ':pCed', $pCedula);
oci_bind_by_name($stmt, ':pCur', $pCurso);
oci_bind_by_name($stmt, ':pPer', $pPeriodo);
oci_bind_by_name($stmt, ':pUser', $pTipoUser);

oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_assoc($curs)) {
$pSalida=$data['CODIGO'].'|'.$data['ASISTENCIA'].'|'.$data['DESCRIPCION'];
}
oci_free_statement($stmt);
oci_free_statement($curs);
}

oci_close($conn);

return $pSalida;
}

Etiquetas: cursor, oracle
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:54.